Android - Verification failed on class ART / Dalvik
Asked Answered
M

1

6

I'm getting a weird error using the Aviary SDK for some users who are using ART. I'm confused on why this happening (only on 4.4.x obviously) as the app works perfectly when calling this SDK on Dalvik. Any one have any have any ideas to solve this? Aviary claims it's PhoneGap/Cordova issue (our base), but I don't think that's the issue here as it only fires when the activity is launched.

06-06 09:45:36.037: D/Aviary(27701): Pictures folder: /storage/emulated/0/Pictures
06-06 09:45:36.037: D/Aviary(27701): show
06-06 09:45:36.037: D/Aviary(27701): VERSION => 3.0.4
06-06 09:45:36.037: D/Aviary(27701): VERSION => 157
06-06 09:45:36.041: I/ActivityManager(741): START u0 {dat=file:///storage/emulated/0/DCIM/Camera/1402062335694.jpg cmp=com.XXXX.app/com.aviary.android.feather.FeatherActivity (has extras)} from pid 27701
06-06 09:45:36.054: W/CursorWrapperInner(27701): Cursor finalized without prior close()
06-06 09:45:36.058: I/CordovaLog(27701): Changing log level to ERROR(6)
06-06 09:45:36.087: I/ActivityManager(741): Start proc com.XXXX.app:standalone for activity com.XXXX.app/com.aviary.android.feather.FeatherActivity: pid=28285 uid=10060 gids={50060, 3003, 1028, 1015}
......
06-06 09:45:36.320: E/art(28285): Verification failed on class com.aviary.android.feather.library.external.tracking.LocalyticsSession$UploadHandler in /data/app/com.XXXXXXX.apk because: Verifier rejected class com.aviary.android.feather.library.external.tracking.LocalyticsSession$UploadHandler due to bad method void com.aviary.android.feather.library.external.tracking.LocalyticsSession$UploadHandler.deleteBlobsAndSessions(com.aviary.android.feather.library.external.tracking.LocalyticsProvider)
06-06 09:45:36.320: E/AndroidRuntime(28285): FATAL EXCEPTION: SessionHandler
06-06 09:45:36.320: E/AndroidRuntime(28285): Process: com.XXXXX.app:standalone, PID: 28285
06-06 09:45:36.320: E/AndroidRuntime(28285): java.lang.VerifyError: Verifier rejected class com.aviary.android.feather.library.external.tracking.LocalyticsSession$UploadHandler due to bad method void com.aviary.android.feather.library.external.tracking.LocalyticsSession$UploadHandler.deleteBlobsAndSessions(com.aviary.android.feather.library.external.tracking.LocalyticsProvider) (declaration of 'com.aviary.android.feather.library.external.tracking.LocalyticsSession$UploadHandler' appears in /data/app/com.XXXXXXX.apk)
06-06 09:45:36.320: E/AndroidRuntime(28285): at com.aviary.android.feather.library.external.tracking.LocalyticsSession$SessionHandler.init(LocalyticsSession.java:1427)
06-06 09:45:36.320: E/AndroidRuntime(28285): at com.aviary.android.feather.library.external.tracking.LocalyticsSession$SessionHandler.handleMessage(LocalyticsSession.java:1124)
06-06 09:45:36.320: E/AndroidRuntime(28285): at android.os.Handler.dispatchMessage(Handler.java:102)
06-06 09:45:36.320: E/AndroidRuntime(28285): at android.os.Looper.loop(Looper.java:136)
06-06 09:45:36.320: E/AndroidRuntime(28285): at android.os.HandlerThread.run(HandlerThread.java:61)
06-06 09:45:36.320: W/ActivityManager(741):   Force finishing activity com.XXXXXX.app/com.aviary.android.feather.FeatherActivity
Murmur answered 6/6, 2014 at 14:2 Comment(7)
It doesn't look like a Cordova issue. Can you create a small test program with Aviary that reproduces the issue that does not included Cordova. I think that'd be your best bet.Alliance
I have done this and it works fine. Looks like it is a Cordova/Phonegap issue - but I have no idea why.Murmur
Is this the plugin you converted to a jar from a gradle project?Alliance
This is the Eclipse project they had before they upgraded. I was unable to convert the gradle project to JAR. Didn't work with the Eclipse plugin.Murmur
Is your apk obfuscated?Rossanarosse
I don't think so - it's whatever the standard would be.Murmur
Is void com.aviary.android.feather.library.external.tracking.LocalyticsSession$UploadHandler.deleteBlobsAndSessions(com.aviary.android.feather.library.external.tracking.LocalyticsProvider) called in your standalone testcase?Liquefy
M
0

This was an issue with Avairy framework - not supporting ART. They latest release fixes this.

Murmur answered 19/8, 2015 at 14:22 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.