startActivity(intent)在某些设备中不起作用

时间:2014-02-10 22:03:26

标签: android android-intent android-activity

首先,我已经搜索了很多这个错误,我找不到任何帮助我解决这个问题的东西......所以,如果这个问题重复,请原谅我。

我遇到一个奇怪的错误...我正在开发一个针对Android minSdkVersion 14的应用程序。我在模拟器,HTC,三星Galaxy S2和Nexus 4中测试了我的应用程序该应用程序在所有这些设备中具有完全相同的行为,但它很简单在三星GT-S6810中不起作用。

我检查了Logcat我的应用程序并且没有错误,但如果我检查整个日志,我会得到这个:

02-10 19:39:03.640: E/ActivityManager(1565): Activity Manager Crash
02-10 19:39:03.640: E/ActivityManager(1565): java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1
02-10 19:39:03.640: E/ActivityManager(1565):    at java.util.ArrayList.get(ArrayList.java:306)
02-10 19:39:03.640: E/ActivityManager(1565):    at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3518)
02-10 19:39:03.640: E/ActivityManager(1565):    at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:4213)
02-10 19:39:03.640: E/ActivityManager(1565):    at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:2696)
02-10 19:39:03.640: E/ActivityManager(1565):    at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:150)
02-10 19:39:03.640: E/ActivityManager(1565):    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1754)
02-10 19:39:03.640: E/ActivityManager(1565):    at android.os.Binder.execTransact(Binder.java:367)
02-10 19:39:03.640: E/ActivityManager(1565):    at dalvik.system.NativeStart.run(Native Method)
02-10 19:39:03.660: E/JavaBinder(1565): *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
02-10 19:39:03.660: E/JavaBinder(1565): java.lang.ArrayIndexOutOfBoundsException: length=12; index=-1
02-10 19:39:03.660: E/JavaBinder(1565):     at java.util.ArrayList.get(ArrayList.java:306)
02-10 19:39:03.660: E/JavaBinder(1565):     at com.android.server.am.ActivityStack.startActivityLocked(ActivityStack.java:3518)
02-10 19:39:03.660: E/JavaBinder(1565):     at com.android.server.am.ActivityStack.startActivityMayWait(ActivityStack.java:4213)
02-10 19:39:03.660: E/JavaBinder(1565):     at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:2696)
02-10 19:39:03.660: E/JavaBinder(1565):     at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:150)
02-10 19:39:03.660: E/JavaBinder(1565):     at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1754)
02-10 19:39:03.660: E/JavaBinder(1565):     at android.os.Binder.execTransact(Binder.java:367)
02-10 19:39:03.660: E/JavaBinder(1565):     at dalvik.system.NativeStart.run(Native Method)

说实话,我不知道这个错误是否与我的应用程序直接相关,但是当我尝试单击我的菜单或其他一些将启动活动的元素时,它会显示出来。

这是一些代码。这只是一个小片段,但正如我所说,这在其他设备和模拟器中都能很好地工作。

menuLogin.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        if (isAuthenticated()) {
            // some code...
        } else {
            Intent i = new Intent(BaseActivity.this,
                    AccountActivity.class);
            startActivity(i);
            overridePendingTransition(R.anim.slide_in_right,
                    R.anim.slide_out_left);
        }
    }
});

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这里非常奇怪的行为,但显然你得到的异常似乎是在一个进程(活动1)中引发但在那里没有处理。这会导致java binder引发未被捕获的远程异常,并使活动管理器在活动2开始时崩溃。我的建议是调试并逐步执行,直到找到原因异常并处理它为止。您可以尝试的另一件事是查看@ NKN的链接或此Throw exceptions through several processes,看看您是否得到任何答案。祝你好运,快乐的调试!