Android应用崩溃:ActivityNotFoundException问题求助
解决
ActivityNotFoundException崩溃问题 错误原因
android.content.ActivityNotFoundException: Unable to find explicit activity class崩溃的核心原因是:你要启动的Activity没有在AndroidManifest.xml文件中注册。Android系统要求所有需要被启动的Activity必须在Manifest中声明,否则系统无法识别并加载该Activity类。
解决步骤
1. 修复Login页面XML的语法错误
你的Login XML代码末尾存在多余的无效代码,会导致编译失败,先删除这部分内容:
" />
2. 注册所有Activity到AndroidManifest.xml
找到项目中的AndroidManifest.xml(路径一般为app/src/main/AndroidManifest.xml),在<application>标签内添加所有用到的Activity声明:
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.IMTV"> <!-- 启动页IntroActivity,设置为应用入口 --> <activity android:name=".IntroActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 登录页LoginActivity --> <activity android:name=".LoginActivity" android:exported="false" /> <!-- 登录成功跳转的MainActivity --> <activity android:name=".MainActivity" android:exported="false" /> </application>
关键注意点
android:exported属性:Android 12及以上版本强制要求设置该属性。作为应用入口的IntroActivity必须设为true,允许系统启动;其他仅内部跳转的Activity设为false即可。- 类名正确性:
.IntroActivity是包名的简写,对应你代码中的com.example.imtv.IntroActivity,如果你的包名不同,要写全类名(比如com.yourpackage.IntroActivity)。 - 检查所有跳转目标:LoginActivity中跳转到
MainActivity,同样要确保MainActivity在Manifest中注册,否则后续也会出现相同崩溃。
完成以上步骤后,重新编译运行应用,点击"Get Started"按钮就能正常跳转到登录页了。
内容的提问来源于stack exchange,提问作者Ghassan
相关产品推荐
相关产品推荐

