如何建立个人网站航空公司官网
如何建立个人网站,航空公司官网,什么情况下需要建设网站,网站开发流程属于制作与开发文章目录问题分析解决过程记录确认SettingsApplication.java被编译强制添加classes.dexAndroid相关专栏问题
RK android8.1内置了3个自己开发的system应用#xff0c;就会一直崩溃报这个错误
Didnt find class com.android.settings.SettingsApplication on pat…文章目录问题分析解决过程记录确认SettingsApplication.java被编译强制添加classes.dexAndroid相关专栏问题RK android8.1内置了3个自己开发的system应用就会一直崩溃报这个错误Didnt find class com.android.settings.SettingsApplication on path: DexPathList Suppressed: java.io.IOException: No original dex files found for dex location /system/priv-app/Settings/Settings.apk如果只内置3个以下则不会有这个问题。出问题时的logcat打印如下RK android8.1内置了3个自己开发的system应用就会报这个错误如果只内置3个以下则不会有这个问题怎么解决 2026-01-26 15:36:03.424 1674-1674 Process com.android.settings I Sending signal. PID: 1674 SIG: 9 2026-01-26 15:36:03.461 25337-25569 ActivityManager system_server I Process com.android.settings:CryptKeeper (pid 1674) has died: fore TPSL 2026-01-26 15:36:03.462 25337-25354 zygote64 system_server W kill(-1674, 9) failed: No such process 2026-01-26 15:36:03.462 25337-25354 zygote64 system_server I Successfully killed process cgroup uid 1000 pid 1674 in 0ms 2026-01-26 15:36:03.473 25337-25569 ActivityManager system_server I START u0 {actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000100 cmpcom.android.settings/.CryptKeeper} from uid 0 2026-01-26 15:36:03.506 25337-25569 ActivityManager system_server I Start proc 1701:com.android.settings:CryptKeeper/1000 for activity com.android.settings/.CryptKeeper 2026-01-26 15:36:03.513 25337-25352 ActivityManager system_server E getPackageFerformanceMode--ComponentInfo{com.android.settings/com.android.settings.CryptKeeper}----com.android.settings 2026-01-26 15:36:03.618 1701-1701 AndroidRuntime com.android.settings D Shutting down VM 2026-01-26 15:36:03.620 1701-1701 AndroidRuntime com.android.settings E FATAL EXCEPTION: main Process: com.android.settings:CryptKeeper, PID: 1701 java.lang.RuntimeException: Unable to instantiate application com.android.settings.SettingsApplication: java.lang.ClassNotFoundException: Didnt find class com.android.settings.SettingsApplication on path: DexPathList[[zip file /system/priv-app/Settings/Settings.apk],nativeLibraryDirectories[/system/priv-app/Settings/lib/arm, /system/priv-app/Settings/Settings.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/lib, /vendor/lib]] at android.app.LoadedApk.makeApplication(LoadedApk.java:989) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5715) at android.app.ActivityThread.-wrap1(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Caused by: java.lang.ClassNotFoundException: Didnt find class com.android.settings.SettingsApplication on path: DexPathList[[zip file /system/priv-app/Settings/Settings.apk],nativeLibraryDirectories[/system/priv-app/Settings/lib/arm, /system/priv-app/Settings/Settings.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/lib, /vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.Instrumentation.newApplication(Instrumentation.java:1087) at android.app.LoadedApk.makeApplication(LoadedApk.java:983) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5715) at android.app.ActivityThread.-wrap1(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Suppressed: java.io.IOException: No original dex files found for dex location /system/priv-app/Settings/Settings.apk at dalvik.system.DexFile.openDexFileNative(Native Method) at dalvik.system.DexFile.openDexFile(DexFile.java:353) at dalvik.system.DexFile.init(DexFile.java:100) at dalvik.system.DexFile.init(DexFile.java:74) at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374) at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337) at dalvik.system.DexPathList.init(DexPathList.java:157) at dalvik.system.BaseDexClassLoader.init(BaseDexClassLoader.java:65) at dalvik.system.PathClassLoader.init(PathClassLoader.java:64) at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73) at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:35) at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:693) at android.app.LoadedApk.getClassLoader(LoadedApk.java:727) at android.app.LoadedApk.getResources(LoadedApk.java:954) at android.app.ContextImpl.createAppContext(ContextImpl.java:2270) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5639) ... 8 more 2026-01-26 15:36:03.626 25337-25569 ActivityManager system_server W Force finishing activity com.android.settings/.CryptKeeper 2026-01-26 15:36:03.636 1701-1701 Process com.android.settings I Sending signal. PID: 1701 SIG: 9 2026-01-26 15:36:03.671 25337-25569 ActivityManager system_server I Process com.android.settings:CryptKeeper (pid 1701) has died: fore TPSL 2026-01-26 15:36:03.673 25337-25354 zygote64 system_server W kill(-1701, 9) failed: No such process 2026-01-26 15:36:03.676 25337-25354 zygote64 system_server I Successfully killed process cgroup uid 1000 pid 1701 in 4ms 2026-01-26 15:36:03.680 25337-25569 ActivityManager system_server I START u0 {actandroid.intent.action.MAIN cat[android.intent.category.HOME] flg0x10000100 cmpcom.android.settings/.CryptKeeper} from uid 0 2026-01-26 15:36:03.713 25337-25569 ActivityManager system_server I Start proc 1728:com.android.settings:CryptKeeper/1000 for activity com.android.settings/.CryptKeeper 2026-01-26 15:36:03.721 25337-25352 ActivityManager system_server E getPackageFerformanceMode--ComponentInfo{com.android.settings/com.android.settings.CryptKeeper}----com.android.settings 2026-01-26 15:36:03.831 1728-1728 AndroidRuntime com.android.settings D Shutting down VM分析com.android.settingsSettings APK在启动 CryptKeeper 时崩溃了错误原因是java.lang.ClassNotFoundException: Didnt find class com.android.settings.SettingsApplication这说明 Settings.apk 的代码结构或构建方式存在问题尤其是添加了多个自研 system app 后触发了这个问题。虽然表面上看是“超过3个就出错”但根本原因很可能是 系统资源限制、Dex 加载机制、或构建/打包冲突 导致 Settings 应用的类加载失败。可能的原因包括A. Dex 分包MultiDex问题 / 超过单个 Dex 方法数限制65536Android 8.1 默认使用 ART但仍受方法数限制影响。如果内置的多个系统 App 都放在 /system/priv-app 或 /system/app并且它们和 Settings 共享同一个 classloader 上下文比如都属于 system uid可能会导致 全局方法数超限进而影响 Settings 的 Dex 加载。更可能的是build 系统在打包 system image 时对 priv-app 的处理有 bug当 priv-app 数量增多时某些 APK 的 dex 未被正确优化odex/mixed oat或索引丢失。B. APK 未正确 odex / oat 编译在 Android 8.1系统应用通常会在首次启动前由 installd 或 dex2oat 预编译为 .oat 文件。如果你直接把 APK 放入 priv-app 目录但未正确配置 Android.mk 或 Android.bp可能导致没有生成 .odex / .oat或者 classes.dex 被剥离仅保留 oat但 oat 损坏或不兼容当系统尝试加载 SettingsApplication 时找不到原始 dex就报Suppressed: java.io.IOException: No original dex files found for dex location ...解决过程记录确认SettingsApplication.java被编译修改packages/apps/Settings/src/com/android/settings/SettingsApplication.java在里面胡乱添加一些字符让它编译不过然后重新执行编译如果编译报错说明是编译上的。强制添加classes.dexSuppressed: java.io.IOException: No original dex files found for dex location /system/priv-app/Settings/Settings.apk这通常意味着APK 中没有 classes.dex或系统期望从 .oat 反向加载 dex但 oat 损坏强制保留 classes.dex即使开启 preopt在 packages/apps/Settings/Android.mk 中添加# 即使开启 DEX_PREOPT也保留原始 dex 在 APK 中 LOCAL_DEX_PREOPT : nostrippingnostripping生成 oat但 不删除 APK 中的 classes.dex默认是 true会 strip 掉 dex然后重新编译 Settingsm-jSettings再检查 APKunzip-lout/target/product/xxx/system/priv-app/Settings/Settings.apk|grepclasses.dex应该能看到 classes.dex。这样再编译就正常了系统开机不崩溃了。但是有一些系统应用也会有同样的问题打开会失败比如Music音乐应用类似的可以单独修改Music:packages/apps/Music/Android.mkLOCAL_PATH : $ (call my-dir) include $ (CLEAR_VARS) LOCAL_PACKAGE_NAME : Music LOCAL_CERTIFICATE : platform LOCAL_SRC_FILES : $ (call all-java-files-under, src) LOCAL_RESOURCE_DIR : $ (LOCAL_PATH)/res # 关键保留 classes.dex LOCAL_DEX_PREOPT : nostripping include $ (BUILD_PACKAGE)Android相关专栏Android Framework专栏链接Android专栏作者帅得不敢出门