Android8 Didn‘t find class “com.android.settings.SettingsApplication“ on path: DexPathList
文章目录问题分析解决过程记录确认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专栏作者帅得不敢出门

相关新闻

常见的视频接口

常见的视频接口

按信号类型分两大类模拟视频:老、画质差、易干扰数字视频:现在全部用这个,清晰、带宽大现在主流视频接口HDMI全称:High-Definition Multimedia Interface外观:扁平扁口,分 A/B/C/D 型,最常见是 …

2026/7/4 15:53:30 阅读更多 →
TCPdump使用教程

TCPdump使用教程

一. 安装 TCPDump在 CentOS 中安装 TCPDump 非常简单。安装 TCPDump:yum install tcpdump -y安装完成后,你可以通过输入 tcpdump 来验证安装是否成功:tcpdump --version二. 常用参数参数描述-a尝试将网络和广播地址转换成名称。-A以 ASCII 码…

2026/5/17 12:21:45 阅读更多 →
为什么选择科哥构建版?IndexTTS2定制镜像优势全面解析

为什么选择科哥构建版?IndexTTS2定制镜像优势全面解析

为什么选择科哥构建版?IndexTTS2定制镜像优势全面解析 如果你正在寻找一个开箱即用、效果出色的语音合成工具,那么IndexTTS2的科哥构建版绝对值得你深入了解。这个基于IndexTTS2最新V23版本深度定制的镜像,不仅继承了原项目的强大能力&#…

2026/5/17 12:21:44 阅读更多 →

最新新闻

基于YOLO26的课堂行为分析系统设计与优化

基于YOLO26的课堂行为分析系统设计与优化

1. 项目背景与核心价值 在传统课堂观察中,教师需要分散注意力记录学生状态,这种人工观察方式存在三个显著痛点:主观性强(不同教师标准不一)、覆盖范围有限(难以同时关注全班)、数据留存困难&…

2026/7/4 15:52:33 阅读更多 →
MLOps生产部署实战:模型服务分层架构与三维监控体系

MLOps生产部署实战:模型服务分层架构与三维监控体系

1. 项目概述:这不是“跑通模型”,而是让模型在真实世界里活下来“From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题本身就像一句行话暗号,老手一眼就懂:前面三篇已经蹚过了数据清洗、特征工程、…

2026/7/4 15:52:33 阅读更多 →
当老板走近时:3分钟学会用Boss-Key打造你的数字安全空间

当老板走近时:3分钟学会用Boss-Key打造你的数字安全空间

当老板走近时:3分钟学会用Boss-Key打造你的数字安全空间 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 你是否经历过这样的尴…

2026/7/4 15:50:33 阅读更多 →
机器学习可解释性实战:从监管合规到业务落地的完整工程指南

机器学习可解释性实战:从监管合规到业务落地的完整工程指南

1. 项目概述:为什么“模型能解释”比“模型很准”更难搞你训练出一个准确率98.7%的信贷风控模型,银行却拒绝上线——不是因为不准,而是因为当它拒绝一位申请人时,业务经理问:“为什么?”你答不上来。这场景…

2026/7/4 15:48:32 阅读更多 →
时序模型基础与实战:从ARIMA到SARIMA应用指南

时序模型基础与实战:从ARIMA到SARIMA应用指南

1. 时序模型基础认知 时序模型(Time Series Model)是数据分析领域的经典工具,专门用于处理按时间顺序排列的观测值集合。这类数据在金融、气象、工业等领域无处不在,比如股票价格逐日波动、城市气温每小时变化、工厂设备每分钟传感…

2026/7/4 15:46:32 阅读更多 →
M24C04-R与MK64FN1M0VDC12的嵌入式存储方案实践

M24C04-R与MK64FN1M0VDC12的嵌入式存储方案实践

1. 为什么选择M24C04-R与MK64FN1M0VDC12组合 在嵌入式系统中,非易失性数据存储是个永恒的话题。我最近在一个工业控制项目中,需要存储设备参数和运行日志,经过多次对比测试,最终选择了M24C04-R EEPROM与MK64FN1M0VDC12 MCU的组合方…

2026/7/4 15:44:31 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻