我不太确定发生了什么,但由于某种原因,我的 SplashActivity 没有在启动时创建,即使我为此设置了 MAIN 和 LAUNCHER 意图。这是我的清单:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".SplashActivity"
android:label="@string/title_activity_main"
android:theme="@style/Theme.Splash" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="whatever" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
如果我删除第二个活动,那么我的 SplashActivity 就会启动。但是由于某种原因,当包含 MainActivity 时,Splash 被忽略了。是否有可能将活动名称设为 MainActivity 会覆盖您为 Launcher 活动设置的任何内容?
更新:
似乎每个人都在建议我在发布这个问题之前已经尝试过的东西,所以我认为现在最好在更多人发布相同的建议之前提及它:)
不幸的是,删除 MainActivity 上的意图会在我的控制台输出中导致以下结果:
[2012-10-11 22:58:44 - 测试] ------------------------------ [2012-10-11 22:58:44 - 测试] Android 发布! [2012-10-11 22:58:44 - 测试] adb 运行正常。 [2012-10-11 22:58:44 - 测试] 执行 com.test.test.MainActivity 活动启动 [2012-10-11 22:58:44 - 测试] 自动目标模式:使用设备 '9a03c386' [2012-10-11 22:58:45 - 测试] 应用程序已经部署。无需重新安装。 [2012-10-11 22:58:45 - 测试] 在设备 9a03c386 上启动活动 com.test.test.MainActivity [2012-10-11 22:58:45 - 测试] ActivityManager:开始:Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.test.test/.MainActivity } [2012-10-11 22:58:45 - 测试] ActivityManager:java.lang.SecurityException:权限拒绝:启动 Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg= 0x10000000 cmp=com.test.test/.MainActivity } from null (pid=12510, uid=2000) 未从 uid 10132 导出 [2012-10-11 22:58:45 - 测试] ActivityManager:在 android.os.Parcel.readException(Parcel.java:1327) [2012-10-11 22:58:45 - 测试] ActivityManager: 在 android.os.Parcel.readException(Parcel.java:1281) [2012-10-11 22:58:45 - 测试] ActivityManager:在 android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1728) [2012-10-11 22:58:45 - 测试] ActivityManager:在 com.android.commands.am.Am.runStart(Am.java:433) [2012-10-11 22:58:45 - 测试] ActivityManager:在 com.android.commands.am.Am.run(Am.java:107) [2012-10-11 22:58:45 - 测试] ActivityManager:在 com.android.commands.am.Am.main(Am.java:80) [2012-10-11 22:58:45 - 测试] ActivityManager:在 com.android.internal.os.RuntimeInit.finishInit(本机方法) [2012-10-11 22:58:45 - 测试] ActivityManager:在 com.android.internal.os.RuntimeInit.main(RuntimeInit.java:263) [2012-10-11 22:58:45 - 测试] ActivityManager:在 dalvik.system.NativeStart.main(本机方法)
不知道这是什么意思,但我不得不假设这是某种错误。