Tôi nhận được ngoại lệ sau với ứng dụng của mình. Tôi tin rằng điều này xảy ra khi người dùng rời khỏi ứng dụng trong một thời gian dài rồi quay trở lại ứng dụng đó. Tôi không thể sao chép nó tuy nhiên nó được hiển thị trong các bản ghi sự cố của tôi rất nhiều. Tôi không biết tại sao điều này lại xảy ra nên mọi đề xuất đều được đánh giá cao.Ngoại lệ tiểu bang đã lưu
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.MyActivity}: java.lang.ArrayIndexOutOfBoundsException: length=3; index=-1
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2202)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2237)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:4974)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=3; index=-1
at java.util.ArrayList.get(ArrayList.java:306)
at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1764)
at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:198)
at com.myapp.MyActivity.onCreate(MyActivity.java:235)
at android.app.Activity.performCreate(Activity.java:4538)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2158)
... 11 more
dòng 235 như sau:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // line 235
onSaveInstanceState của tôi() là khá đơn giản:
@Override
public void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
state.putInt("id1", id1);
state.putInt("id2", id2);
state.putInt("id3", id3);
state.putInt("id4", id4);
}
là nó bởi vì một trong id1, id2, id3, id4 tương đương với -1 khi bạn đang lưu nó? – Blundell
Họ không bao giờ nên là -1, tuy nhiên, tôi không tin rằng giá trị của các vấn đề int. – Nick
Bạn có chắc chắn dòng 235 là dòng đó không. Việc xây dựng bạn có Log từ là giống như bạn đang kiểm tra? – Blundell