AndroidManifest.xml中修改启动Activity为SplashScreen.java的问题求助
AndroidManifest.xml中修改启动Activity为SplashScreen.java的问题求助
嘿,别着急!这个配置逻辑在API 16(Android 4.1)里根本没变化,大概率是你在Manifest里的标签配置有小疏漏~我来一步步帮你搞定:
核心原理:启动Activity的关键标签
系统识别启动页的唯一标准,就是看哪个<activity>标签下包含了这两个子标签:
<action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />
你只需要把这组标签从MainActivity的配置里移到SplashScreen的配置里,同时确保MainActivity不再保留这组标签就行。
正确配置示例
打开你的AndroidManifest.xml,按照下面的结构调整:
<!-- 配置SplashScreen为启动页 --> <activity android:name=".SplashScreen" <!-- 这里要确保类路径正确,子包下要写全比如com.yourpackage.SplashScreen --> android:exported="true"> <!-- API 30+必须加,API16可加可不加,建议加上避免后续兼容问题 --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!-- 原来的MainActivity,移除启动页相关的intent-filter --> <activity android:name=".MainActivity" android:exported="true"> <!-- 这里可以保留其他需要的intent-filter,但别留MAIN+LAUNCHER的组合 --> </activity>
常见坑点排查
如果按照上面改了还是不行,检查这几个地方:
- 类路径拼写错误:比如SplashScreen在子包
ui下,你写成了.SplashScreen而不是.ui.SplashScreen - 多个启动页标签:有没有不小心给其他Activity也加了
LAUNCHER类别?系统会弹窗让你选启动页,看起来就像没生效 - 缓存问题:Android Studio有时候会有缓存,试试
Build > Clean Project再Rebuild Project - SplashScreen类是否存在:确保你确实创建了
SplashScreen.java,没有拼写错误或者没在正确的包下
要是还是搞不定,可以把你当前的AndroidManifest.xml里和这两个Activity相关的代码贴出来,我帮你揪出问题~




