murraycu / android-galaxyzoo

This Android app lets you classify Galaxy Zoo subjects. It is available in the Google Play Store: https://play.google.com/store/apps/details?id=com.murrayc.galaxyzoo.app . Try beta versions early here: https://play.google.com/apps/testing/com.murrayc.galaxyzoo.app . See also the iPhone app for Galaxy Zoo: https://github.com/murraycu/ios-galaxyzoo/
GNU General Public License v3.0
11 stars 13 forks source link

Beta: Crash at startup: ava.lang.VerifyError: Rejecting class com.murrayc.galaxyzoo.app.aq because it failed compile-time verification #31

Closed craftyguy closed 8 years ago

craftyguy commented 8 years ago

I just installed v1.59 and get a force close when starting the app. I did not have a previous version installed. I am on CyanogenMod 13.0 / Android 6.0.1.

Here is the relevant information from logcat when the crash occurs:

08-25 19:27:06.811 D/AndroidRuntime(32133): Shutting down VM
08-25 19:27:06.814 E/AndroidRuntime(32133): FATAL EXCEPTION: main
08-25 19:27:06.814 E/AndroidRuntime(32133): Process: com.murrayc.galaxyzoo.app, PID: 32133
08-25 19:27:06.814 E/AndroidRuntime(32133): Theme: themes:{default=overlay:com.materialos.cm.theme, iconPack:org.twelf.cmtheme, fontPkg:org.mmk2410.cyngn.theme.fira, com.android.systemui=overlay:com.materialos.cm.theme, com.android.systemui.navbar=overlay:system}
08-25 19:27:06.814 E/AndroidRuntime(32133): java.lang.VerifyError: Rejecting class com.murrayc.galaxyzoo.app.aq because it failed compile-time verification (declaration of 'com.murrayc.galaxyzoo.app.aq' appears in /data/app/com.murrayc.galaxyzoo.app-1/base.apk)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at com.murrayc.galaxyzoo.app.ac.b()
08-25 19:27:06.814 E/AndroidRuntime(32133):     at com.murrayc.galaxyzoo.app.ac.k()
08-25 19:27:06.814 E/AndroidRuntime(32133):     at com.murrayc.galaxyzoo.app.ac.f()
08-25 19:27:06.814 E/AndroidRuntime(32133):     at com.murrayc.galaxyzoo.app.ac.m()
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.a.bw.j(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.a.bw.i(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.d.b.a(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.d.f.e(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.d.f.a(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.d.g.g(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.d.h.b(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.d.i.l(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.d.i.p(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.support.v4.d.s.handleMessage(Unknown)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.os.Handler.dispatchMessage(Handler.java:102)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.os.Looper.loop(Looper.java:148)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at android.app.ActivityThread.main(ActivityThread.java:5461)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at java.lang.reflect.Method.invoke(Native Method)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
08-25 19:27:06.814 E/AndroidRuntime(32133):     at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:102)
08-25 19:27:06.816 W/ActivityManager(2705):   Force finishing activity com.murrayc.galaxyzoo.app/.ClassifyActivity
08-25 19:27:06.903 I/android-galaxyzoo(32206): doRegularTasks() start
08-25 19:27:06.913 I/OpenGLRenderer(2705): Initialized EGL, version 1.4
08-25 19:27:06.963 I/android-galaxyzoo(32206): checkImagesStillExist(): start
08-25 19:27:06.989 I/art     (2705): Background partial concurrent mark sweep GC freed 78603(4MB) AllocSpace objects, 25(604KB) LOS objects, 33% free, 27MB/41MB, paused 2.510ms total 143.074ms
08-25 19:27:06.999 I/android-galaxyzoo(32206): checkImagesStillExist(): end
08-25 19:27:06.999 I/android-galaxyzoo(32206): doRegularTasks() end
08-25 19:27:07.048 I/android-galaxyzoo(32206): doRegularTasks() start
08-25 19:27:07.079 I/ActivityManager(2705): Process com.android.documentsui (pid 25558) has died
08-25 19:27:07.088 I/android-galaxyzoo(32206): checkImagesStillExist(): start
08-25 19:27:07.112 I/android-galaxyzoo(32206): checkImagesStillExist(): end
08-25 19:27:07.112 I/android-galaxyzoo(32206): doRegularTasks() end
08-25 19:27:07.150 I/android-galaxyzoo(32206): doRegularTasks() start
08-25 19:27:07.188 I/android-galaxyzoo(32206): checkImagesStillExist(): start
08-25 19:27:07.214 I/android-galaxyzoo(32206): checkImagesStillExist(): end
08-25 19:27:07.214 I/android-galaxyzoo(32206): doRegularTasks() end
08-25 19:27:07.313 I/android-galaxyzoo(32206): doRegularTasks() start
08-25 19:27:07.350 W/ActivityManager(2705): Activity pause timeout for ActivityRecord{98df40e u0 com.murrayc.galaxyzoo.app/.ClassifyActivity t10936 f}
08-25 19:27:07.351 E/QCOM PowerHAL(2705): Failed to acquire lock.
08-25 19:27:07.354 I/android-galaxyzoo(32206): checkImagesStillExist(): start
08-25 19:27:07.383 I/android-galaxyzoo(32206): checkImagesStillExist(): end
08-25 19:27:07.383 I/android-galaxyzoo(32206): doRegularTasks() end
08-25 19:27:07.487 I/android-galaxyzoo(32206): doRegularTasks() start
08-25 19:27:07.614 W/PackageSettings(2705): Skipping PackageSetting{39bc963 org.jtb.csdroid.donate/10113} due to missing metadata
08-25 19:27:07.623 W/PackageSettings(2705): Skipping PackageSetting{6431960 com.wolfram.android.alpha/10239} due to missing metadata
08-25 19:27:07.645 I/android-galaxyzoo(32206): checkImagesStillExist(): start
08-25 19:27:07.683 I/android-galaxyzoo(32206): checkImagesStillExist(): end
08-25 19:27:07.683 I/android-galaxyzoo(32206): doRegularTasks() end
08-25 19:27:07.807 I/android-galaxyzoo(32206): doRegularTasks() start
08-25 19:27:07.844 E/QCOM PowerHAL(2705): Failed to acquire lock.
08-25 19:27:07.852 I/android-galaxyzoo(32206): checkImagesStillExist(): start
08-25 19:27:07.855 E/QCOM PowerHAL(2705): Failed to acquire lock.
08-25 19:27:07.869 E/QCOM PowerHAL(2705): Failed to acquire lock.
08-25 19:27:07.884 I/android-galaxyzoo(32206): checkImagesStillExist(): end
08-25 19:27:07.884 I/android-galaxyzoo(32206): doRegularTasks() end
08-25 19:27:07.956 E/QCOM PowerHAL(2705): Failed to acquire lock.
08-25 19:27:07.964 I/ActivityManager(2705): START u0 {act=com.android.systemui.recents.SHOW_RECENTS flg=0x10804000 cmp=com.android.systemui/.recents.RecentsActivity} from uid 10016 on display 0
08-25 19:27:07.988 I/android-galaxyzoo(32206): doRegularTasks() start
08-25 19:27:08.087 I/android-galaxyzoo(32206): checkImagesStillExist(): start
08-25 19:27:08.139 I/android-galaxyzoo(32206): checkImagesStillExist(): end
08-25 19:27:08.139 I/android-galaxyzoo(32206): doRegularTasks() end
08-25 19:27:08.185 I/android-galaxyzoo(32206): doRegularTasks() start
08-25 19:27:08.248 I/android-galaxyzoo(32206): checkImagesStillExist(): start
08-25 19:27:08.284 I/android-galaxyzoo(32206): checkImagesStillExist(): end
08-25 19:27:08.284 I/android-galaxyzoo(32206): doRegularTasks() end
08-25 19:27:08.331 I/android-galaxyzoo(32206): doRegularTasks() start
08-25 19:27:08.354 I/android-galaxyzoo(32206): checkImagesStillExist(): start
08-25 19:27:08.372 I/android-galaxyzoo(32206): checkImagesStillExist(): end
08-25 19:27:08.372 I/android-galaxyzoo(32206): doRegularTasks() end
murraycu commented 8 years ago

Thanks. Yes, this seems to be happening on all devices (though not the emulator) with the new beta version. Luckily I haven't released that widely yet.

Disabling proguard seems to avoid the problem: https://github.com/murraycu/android-galaxyzoo/commit/ba5bc1c474c56c30412a34bb8ab097ed7a0001cf But I'd rather keep using proguard to keep the download size smaller. I'm investigating if something else has triggered this.

craftyguy commented 8 years ago

I just tested 1.61 from f-droid and all is well, thank you this awesome app!!! On Fri, Aug 26, 2016 at 05:14:32AM -0700, Murray Cumming wrote:

Thanks. Yes, this seems to be happening on all devices (though not the emulator) with the new beta version. Luckily I haven't released that widely yet.

Disabling proguard seems to avoid the problem: https://github.com/murraycu/android-galaxyzoo/commit/ba5bc1c474c56c30412a34bb8ab097ed7a0001cf But I'd rather keep using proguard to keep the download size smaller. I'm investigating if something else has triggered this.

You are receiving this because you authored the thread. Reply to this email directly or view it on GitHub: https://github.com/murraycu/android-galaxyzoo/issues/31#issuecomment-242719498

murraycu commented 8 years ago

I'm keeping this open because I still want to use Proguard.

craftyguy commented 8 years ago

Oh ok, sorry for closing it prematurely!

On August 27, 2016 1:18:45 PM PDT, Murray Cumming notifications@github.com wrote:

murraycu commented 8 years ago

I can't reproduce this even with real devices, though Google's new Pre-Launch Reports shows the same startup error with every single test device.

Could you try to "git checkout" some random commits from before 1.59, to see if something particular triggers the problem?

murraycu commented 8 years ago

For version 1.60, the pre-launch tests have this exception:

 FATAL EXCEPTION: main
 Process: com.murrayc.galaxyzoo.app, PID: 23580
 java.lang.VerifyError: Rejecting class com.murrayc.galaxyzoo.app.j because it failed compile-time verification (declaration of 'com.murrayc.galaxyzoo.app.j' appears in /data/app/com.murrayc.galaxyzoo.app-1/base.apk)
    at com.murrayc.galaxyzoo.app.ClassifyActivity.onCreate()
    at android.app.Activity.performCreate(Activity.java:6500)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3072)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
    at android.app.ActivityThread.access$1000(ActivityThread.java:198)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:6837)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

The log output mentions this:

com.murrayc.galaxyzoo.app-1/base.apk --oat-fd=12 --art-fd=-1 --compress-image --oat-location=/data/dalvik-cache/arm64/data@app@com.murrayc.galaxyzoo.app-1@base.apk@classes.dex --instruction-set=arm64 --instruction-set-features=default --runtime-arg -Xms64m --runtime-arg -Xmx512m --swap-fd=13
08-25 10:09:07.168: W/dex2oat(21633): Duplicate field in /data/app/com.murrayc.galaxyzoo.app-1/base.apk
08-25 10:09:07.188: W/dex2oat(21633): Duplicate field in /data/app/com.murrayc.galaxyzoo.app-1/base.apk
08-25 10:09:07.198: I/dex2oat(21633): Decided to run without swap.
08-25 10:09:07.388: W/dex2oat(21633): Duplicate field in /data/app/com.murrayc.galaxyzoo.app-1/base.apk
08-25 10:09:07.388: W/dex2oat(21633): Duplicate field in /data/app/com.murrayc.galaxyzoo.app-1/base.apk
08-25 10:09:07.608: I/dex2oat(21633): Verification error in boolean android.support.v7.widget.gi.e(android.support.v7.widget.k, int, int, int, int)
08-25 10:09:07.608: I/dex2oat(21633): boolean android.support.v7.widget.gi.e(android.support.v7.widget.k, int, int, int, int) failed to verify: boolean android.support.v7.widget.gi.e(android.support.v7.widget.k, int, int, int, int): [0x34] invoke-super/virtual can't be used on private method void android.support.v7.widget.gi.d(android.support.v7.widget.k)
08-25 10:09:07.608: W/dex2oat(21633): Duplicate field in /data/app/com.murrayc.galaxyzoo.app-1/base.apk
08-25 10:09:07.608: I/dex2oat(21633): Verification error in void android.support.v7.widget.gi.n(android.support.v7.widget.k)
08-25 10:09:07.608: I/dex2oat(21633): void android.support.v7.widget.gi.n(android.support.v7.widget.k) failed to verify: void android.support.v7.widget.gi.n(android.support.v7.widget.k): [0x87] invoke-super/virtual can't be used on private method void android.support.v7.widget.gi.d(android.support.v7.widget.k)
08-25 10:09:07.608: I/dex2oat(21633): Verification error in void android.support.v7.widget.gi.o()
08-25 10:09:07.608: I/dex2oat(21633): void android.support.v7.widget.gi.o() failed to verify: void android.support.v7.widget.gi.o(): [0x87] invoke-super/virtual can't be used on private method void android.support.v7.widget.gi.d(android.support.v7.widget.k)
08-25 10:09:07.608: E/dex2oat(21633): Verification failed on class android.support.v7.widget.gi in /data/app/com.murrayc.galaxyzoo.app-1/base.apk because: Verifier rejected class android.support.v7.widget.gi due to bad method void android.support.v7.widget.gi.o()
08-25 10:09:07.608: I/dex2oat(21633): Verification error in android.view.View com.murrayc.galaxyzoo.app.f.d(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
08-25 10:09:07.608: I/dex2oat(21633): android.view.View com.murrayc.galaxyzoo.app.f.d(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle) failed to verify: android.view.View com.murrayc.galaxyzoo.app.f.d(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle): [0x1F] invoke-super/virtual can't be used on private method void com.murrayc.galaxyzoo.app.f.a()
08-25 10:09:07.608: E/dex2oat(21633): Verification failed on class com.murrayc.galaxyzoo.app.f in /data/app/com.murrayc.galaxyzoo.app-1/base.apk because: Verifier rejected class com.murrayc.galaxyzoo.app.f due to bad method android.view.View com.murrayc.galaxyzoo.app.f.d(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
08-25 10:09:07.618: I/dex2oat(21633): Verification error in android.view.View com.murrayc.galaxyzoo.app.j.d(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
08-25 10:09:07.618: I/dex2oat(21633): android.view.View com.murrayc.galaxyzoo.app.j.d(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle) failed to verify: android.view.View com.murrayc.galaxyzoo.app.j.d(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle): [0x1F] invoke-super/virtual can't be used on private method void com.murrayc.galaxyzoo.app.j.a()
08-25 10:09:07.618: E/dex2oat(21633): Verification failed on class com.murrayc.galaxyzoo.app.j in /data/app/com.murrayc.galaxyzoo.app-1/base.apk because: Verifier rejected class com.murrayc.galaxyzoo.app.j due to bad method android.view.View com.murrayc.galaxyzoo.app.j.d(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)

Which looks similar to this: https://code.google.com/p/android/issues/detail?id=218917

murraycu commented 8 years ago

I uploaded some other packages as Alpha releases to the play store, because this is the only way I can reproduce the VerifyError. This seems to be the commit that triggers it (Switching to Java 8): https://github.com/murraycu/android-galaxyzoo/commit/7f5342eaa2e34b4af3913925830cf90b897f0878

I've reverted that commit and released 1.64.