helloworld1 / AnyMemo

Advanced Spaced Repetition flashcard learning software for Android.
http://www.anymemo.org
GNU General Public License v2.0
151 stars 53 forks source link

AnyMemo crashes after multi-task resuming if it was killed by OOM #302

Closed helloworld1 closed 9 years ago

helloworld1 commented 9 years ago

Original issue 295 created by helloworld1 on 2014-01-11T00:13:22.000Z:

Run AnyMemo and press "HOME" to switch to other apps. If system runs out of memory, AnyMemo will be killed by OOM killer. When switching back to AnyMemo, the Android system should re-create the Activity. AnyMemo crashes when re-creating the Activity.

Trace:

E/AndroidRuntime( 2198): Process: org.liberty.android.fantastischmemo, PID: 2198 E/AndroidRuntime( 2198): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.liberty.android.fantastischmemo/org.liberty.android.fantastischmemo.ui.StudyActivity}: java.lang.ClassCastException: java.lang.Object[] cannot be cast to org.liberty.android.fantastischmemo.ui.CardFragment$Builder[] E/AndroidRuntime( 2198): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176) E/AndroidRuntime( 2198): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226) E/AndroidRuntime( 2198): at android.app.ActivityThread.access$700(ActivityThread.java:135) E/AndroidRuntime( 2198): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397) E/AndroidRuntime( 2198): at android.os.Handler.dispatchMessage(Handler.java:102) E/AndroidRuntime( 2198): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime( 2198): at android.app.ActivityThread.main(ActivityThread.java:4998) E/AndroidRuntime( 2198): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime( 2198): at java.lang.reflect.Method.invoke(Method.java:515) E/AndroidRuntime( 2198): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) E/AndroidRuntime( 2198): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) E/AndroidRuntime( 2198): at dalvik.system.NativeStart.main(Native Method) E/AndroidRuntime( 2198): Caused by: java.lang.ClassCastException: java.lang.Object[] cannot be cast to org.liberty.android.fantastischmemo.ui.CardFragment$Builder[] E/AndroidRuntime( 2198): at org.liberty.android.fantastischmemo.ui.TwoFieldsCardFragment.onCreate(TwoFieldsCardFragment.java:97) E/AndroidRuntime( 2198): at android.support.v4.app.Fragment.performCreate(Fragment.java:1477) E/AndroidRuntime( 2198): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:893) E/AndroidRuntime( 2198): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) E/AndroidRuntime( 2198): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086) E/AndroidRuntime( 2198): at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:1879) E/AndroidRuntime( 2198): at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:215) E/AndroidRuntime( 2198): at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:97) E/AndroidRuntime( 2198): at org.liberty.android.fantastischmemo.RoboActionBarActivity.onCreate(RoboActionBarActivity.java:57) E/AndroidRuntime( 2198): at org.liberty.android.fantastischmemo.AMActivity.onCreate(AMActivity.java:47) E/AndroidRuntime( 2198): at org.liberty.android.fantastischmemo.ui.QACardActivity.onCreate(QACardActivity.java:141) E/AndroidRuntime( 2198): at org.liberty.android.fantastischmemo.ui.StudyActivity.onCreate(StudyActivity.java:119) E/AndroidRuntime( 2198): at android.app.Activity.performCreate(Activity.java:5243) E/AndroidRuntime( 2198): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) E/AndroidRuntime( 2198): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140) E/AndroidRuntime( 2198): ... 11 more W/ActivityManager( 1158): Force finishing activity org.liberty.android.fantastischmemo/.ui.StudyActivity

helloworld1 commented 9 years ago

Comment #1 originally posted by helloworld1 on 2014-01-11T00:16:55.000Z:

<empty>

helloworld1 commented 9 years ago

Comment #2 originally posted by helloworld1 on 2014-01-11T00:34:57.000Z:

Okay I just installed the drivers for my device. Though, do you still need the adb logcat from me or are you fine

helloworld1 commented 9 years ago

Comment #3 originally posted by helloworld1 on 2014-01-11T01:15:14.000Z:

The issue should be fixed by now. I made a stupid mistake there. Thank you Neofireblaze for reporting the bug and providing useful informations. Please let me know if it is fixed in tomorrow's build (will be # 85)

Change: http://code.google.com/p/anymemo/source/detail?r=b59f0b7e3464632c8a2584d48852ade6f8250e0e

helloworld1 commented 9 years ago

Comment #4 originally posted by helloworld1 on 2014-01-11T15:06:20.000Z:

I seem to have encoutered similar crashes. It goes like this: study mode in landscape, when swiching to another app and change the layout to portrait, anymemo crashes after you switch back.

helloworld1 commented 9 years ago

Comment #5 originally posted by helloworld1 on 2014-01-11T15:07:12.000Z:

will keep an eye on build 85 to see if it's fixed.

helloworld1 commented 9 years ago

Comment #6 originally posted by helloworld1 on 2014-01-11T18:31:09.000Z:

zongbinw, the fix I mentioned should also fix this case too.

helloworld1 commented 9 years ago

Comment #7 originally posted by helloworld1 on 2014-01-12T22:25:11.000Z:

I can confirm that build 85 resolves issue

helloworld1 commented 9 years ago

Comment #8 originally posted by helloworld1 on 2014-01-12T23:32:10.000Z:

Great! Closing this issue now.