Android Oreo启动应用报错:Activity类不存在问题求助
解决Activity类不存在的启动错误
这个问题我帮不少开发者排查过,大概率是Manifest配置、构建缓存或者包名/类名匹配的问题,给你整理几个最有效的解决思路:
1. 先核对Manifest里的Activity配置
先盯着你提供的Manifest片段,确认这几个关键细节:
- 确保
SplashActivity的全类名和启动命令里的com.package.SplashActivity完全一致,Java/Kotlin对大小写敏感,别写错字母 - 检查Activity的声明格式是否正确,必须包含
android:name属性,Android 12及以上版本还要加android:exported="true"(否则启动Activity会被系统拦截),示例如下:
<activity android:name=".SplashActivity" <!-- 用相对路径的话,要保证Manifest根节点的package属性是com.package --> android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
- 确认Manifest根节点的
package属性确实是com.package,如果你的Activity在子包下(比如com.package.ui.SplashActivity),那启动命令里的类名也要对应改成这个完整路径
2. 清理构建缓存并重新构建
Android Studio的构建缓存偶尔会“抽风”,导致编译后的APK里没包含目标Activity,试试这几步:
- 点击菜单栏的
Build > Clean Project,等清理完成 - 再点击
Build > Rebuild Project,重新编译整个项目 - 嫌点鼠标麻烦的话,直接在Terminal里执行命令:
./gradlew clean assembleDebug
3. 检查Run/Debug配置
有时候是运行配置里的参数错了:
- 打开右上角运行按钮旁边的下拉菜单,选
Edit Configurations - 确认
Launch选项是Default Activity,如果是手动指定的话,一定要选对com.package.SplashActivity - 检查
Module是否选的是你当前的主模块(比如app模块)
4. 卸载设备上的旧应用再重装
如果之前装过同名包的旧版本,可能存在缓存冲突:
- 在模拟器/真机上找到你的应用,彻底卸载干净
- 然后重新点击Run按钮安装最新的APK
5. 排查多模块或Product Flavors的问题
如果你的项目有多个模块或者自定义的Product Flavor,可能是编译目标不对:
- 确认你编译的是正确的Flavor(比如Debug/Release,或者自定义的Flavor)
- 检查build.gradle里的
applicationId是否和Manifest的package一致,示例:
android { defaultConfig { applicationId "com.package" // 这里要和Manifest的package属性完全匹配 } }
内容的提问来源于stack exchange,提问作者Siddharth Patel
相关产品推荐
相关产品推荐

