运行项目时遭遇错误:java.lang.ClassNotFoundException问题求助
解决java.lang.ClassNotFoundException: Didn't find class "com.example.appName.Application"的问题
嘿,这个找不到Application类的ClassNotFoundException我碰到过好多次了,给你整理几个最常见的排查和解决方向:
先核对包名和类名是否匹配
打开你的Application类文件,看顶部的package声明是不是正好是com.example.appName?有时候手动改了项目包名,但类的包路径没同步,或者Manifest里写的路径和实际类的路径对不上,就会出这个错。检查AndroidManifest.xml的配置
如果是Android项目,Manifest里的application标签必须正确指定你的Application类。比如:<application android:name="com.example.appName.Application" android:allowBackup="true" android:icon="@mipmap/ic_launcher" ...>要是你的Application类叫别的名字(比如
MyApp),或者在子包下,一定要把全路径写对,别漏了任何一部分。清理缓存再重建项目
很多时候是构建缓存搞的鬼,试试:- 要是用Android Studio,点顶部菜单的
Build > Clean Project,然后再点Build > Rebuild Project - 用Gradle命令的话,终端里跑
./gradlew clean build(Mac/Linux)或者gradlew clean build(Windows)
- 要是用Android Studio,点顶部菜单的
确认类的存放目录和依赖配置
别把Application类误放到test或者androidTest这些测试目录里,这些目录的类不会被打包到正式APK里。如果是多模块项目,还要确保Application类所在的模块被主模块正确依赖,比如在主模块的build.gradle里加:dependencies { implementation project(':your-module-name') }排查混淆配置(如果开启了ProGuard/R8)
要是开了代码混淆,ProGuard可能把你的Application类当成无用代码移除了。去proguard-rules.pro里加一条规则保护这个类:-keep class com.example.appName.Application { *; }
内容的提问来源于stack exchange,提问作者Fakhar Ilyas
相关产品推荐
相关产品推荐

