2014-02-10 42 views
0

首先,我爲這個錯誤搜索了很多東西,而且我找不到任何能幫助我解決這個問題的東西......所以,如果這個問題是重複,原諒我。startActivity(intent)在某些設備上不起作用

我遇到了一些奇怪的錯誤......我正在開發一款面向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); 
     } 
    } 
}); 

我該如何解決這個問題?

+0

不知道這是否是造成您的異常的瓶頸,但檢查此問題http://stackoverflow.com/questions/15604145/recommended-approach-for-handling-errors-across-process-using-aidl-android – nKn

+0

嗨@NKN,你的答案tks。如果我理解正確,在這種情況下,這個人有一個遙遠的過程。在我的項目中,我擁有同一個應用程序中的所有內容,這只是一個開始其他活動的活動。我也嘗試調試上面的代碼,它「完美」工作,應用程序不會崩潰,並且不會顯示任何錯誤。任何其他想法? – j2sb

回答

1

這裏很奇怪的行爲,但顯然你得到的似乎是在一個進程(活動1)拋出的異常,但沒有在那裏處理。這會導致java binder引發未捕獲的遠程異常,並在活動2開始時使活動管理器崩潰。我的建議是調試並逐步完成,直到找到導致原始異常並處理它爲止。你可以嘗試的另一件事是看看@ NKN的鏈接或這個Throw exceptions through several processes,看看你是否得到任何答案。祝你好運,快樂的調試!

相關問題