首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android启动错误活动

Android启动错误活动
EN

Stack Overflow用户
提问于 2013-10-08 10:58:12
回答 7查看 9.2K关注 0票数 7

当我启动应用程序时,Android启动了错误的活动。

Manifest.xml :

代码语言:javascript
复制
<activity
    android:name="com.company.app.activities.RS_SplashScreenActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name="com.company.app.activities.RS_PreviousLauncherActivity"
    android:label="@string/app_name"
    android:theme="@style/myTheme" >
</activity> 

我添加了一个新的活动RS_SplashScreenActivity,并将其设置为launcher活动。尽管如此,它还是尝试在添加RS_PreviousLauncherActivity之前启动以前作为启动程序活动的RS_SplashScreenActivity

我确信android选择了错误的启动程序活动,因为下面的日志来自控制台。

控制台:

代码语言:javascript
复制
[2013-10-10 12:03:58 - app] Android Launch!
[2013-10-10 12:03:58 - app] adb is running normally.
[2013-10-10 12:03:58 - app] Performing com.company.app.activities.RS_PreviousLauncherActivity activity launch
[2013-10-10 12:04:01 - app] Uploading app.apk onto device '5C78E6332221CD6A1'
[2013-10-10 12:04:05 - app] Installing app.apk...
[2013-10-10 12:04:12 - app] Success!
[2013-10-10 12:04:12 - app] Starting activity com.company.app.activities.RS_PreviousLauncherActivity on device 5C78E6332221CD6A1
[2013-10-10 12:04:12 - app] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.company.app/.activities.RS_PreviousLauncherActivity }
[2013-10-10 12:04:13 - app] ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.company.app/.activities.RS_PreviousLauncherActivity } from null (pid=4530, uid=2000) not exported from uid 10084
[2013-10-10 12:04:13 - app] ActivityManager: at android.os.Parcel.readException(Parcel.java:1425)
[2013-10-10 12:04:13 - app] ActivityManager: at android.os.Parcel.readException(Parcel.java:1379)
[2013-10-10 12:04:13 - app] ActivityManager: at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1783)
[2013-10-10 12:04:13 - app] ActivityManager: at com.android.commands.am.Am.runStart(Am.java:463)
[2013-10-10 12:04:13 - app] ActivityManager: at com.android.commands.am.Am.run(Am.java:108)
[2013-10-10 12:04:13 - app] ActivityManager: at com.android.commands.am.Am.main(Am.java:81)
[2013-10-10 12:04:13 - app] ActivityManager: at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
[2013-10-10 12:04:13 - app] ActivityManager: at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235)
[2013-10-10 12:04:13 - app] ActivityManager: at dalvik.system.NativeStart.main(Native Method)

知道为什么会这样吗?

编辑:

代码语言:javascript
复制
public class RS_SplashScreenActivity extends Activity {

    // Splash screen timer
    private static int SPLASH_TIME_OUT = 3000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash_screen);

        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                // This method will be executed once the timer is over
                // Start your app main activity
                Intent i = new Intent(RS_SplashScreenActivity.this, RS_PreviousLauncherActivity.class);
                RS_SplashScreenActivity.this.startActivity(i);

                // close this activity
                RS_SplashScreenActivity.this.finish();
            }
        }, SPLASH_TIME_OUT);
    }

编辑:当我删除RS_PreviousLauncherActivity的活动标签时,它检测到正确的活动作为启动程序,但是当我再次添加活动标签时,它就开始选择错误的活动。

编辑: --我在控制台中获得以下日志。也许这和我的问题有关。

代码语言:javascript
复制
[2013-10-09 10:27:04 - app] Dx warning: Ignoring InnerClasses attribute for an anonymous inner class
(org.apache.james.mime4j.message.Header$1) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it is *not* an inner class.

还有一件事,同样的项目在另一台机器上工作。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-10-11 06:50:42

右键单击您的项目并选择"Run As“> "Run Configurations.”。检查弹出的对话框,该对话框是否在Android选项卡中选择了“启动默认活动”:

很可能是在不断启动旧活动的机器上,它被设置为意外地启动特定的活动(第二个单选按钮)。

票数 24
EN

Stack Overflow用户

发布于 2013-10-08 11:00:51

卸载应用程序,并再次安装它,有时appLauncher在您的发射器持有旧的参考,我有类似的问题图标,我改变了应用图标,但它显示为旧的。

票数 0
EN

Stack Overflow用户

发布于 2013-10-08 11:03:23

从Eclipse中清理项目。

  1. 菜单->项目->清洁->选择你的项目->确定

它将清理项目并再次生成二进制文件。之后,安装应用程序并检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19245883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档