首先,我爲這個錯誤搜索了很多東西,而且我找不到任何能幫助我解決這個問題的東西......所以,如果這個問題是重複,原諒我。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);
}
}
});
我該如何解決這個問題?
不知道這是否是造成您的異常的瓶頸,但檢查此問題http://stackoverflow.com/questions/15604145/recommended-approach-for-handling-errors-across-process-using-aidl-android – nKn
嗨@NKN,你的答案tks。如果我理解正確,在這種情況下,這個人有一個遙遠的過程。在我的項目中,我擁有同一個應用程序中的所有內容,這只是一個開始其他活動的活動。我也嘗試調試上面的代碼,它「完美」工作,應用程序不會崩潰,並且不會顯示任何錯誤。任何其他想法? – j2sb