【发布时间】:2012-10-12 05:56:22
【问题描述】:
我不太确定发生了什么,但由于某种原因,我的 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(本机方法)不知道是什么意思,但我不得不假设这是某种错误。
【问题讨论】:
-
尝试为您的 MainActivity 删除
。 -
您的建议有效,但似乎还有另一个问题是由此导致的。现在,当我尝试从 Eclipse 运行该程序时,该程序不会在我的手机上自动启动,而是 Eclipse 只是安装它而不做任何其他事情。我每次都必须自己在手机上手动运行程序。但是,如果我按照以前的方式离开 Manifest,那么当我从 Eclipse 运行它时,我的程序会自动启动。是什么导致了这个新问题?我需要在 Manifest 中添加其他内容吗?
-
@paulsmith - 我现在也有同样的问题。应用程序不会在我的手机上自动运行。你找到解决办法了吗?