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
Cerbrus
  • 70,800
  • 18
  • 132
  • 147
gregavola
  • 2,519
  • 5
  • 30
  • 47
  • 1
    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. – Simon MacDonald Jun 06 '14 at 15:28
  • I have done this and it works fine. Looks like it is a Cordova/Phonegap issue - but I have no idea why. – gregavola Jun 07 '14 at 13:29
  • Is this the plugin you converted to a jar from a gradle project? – Simon MacDonald Jun 09 '14 at 12:19
  • 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. – gregavola Jun 09 '14 at 12:28
  • Is your apk obfuscated? – matiash Jun 18 '14 at 14:37
  • I don't think so - it's whatever the standard would be. – gregavola Jun 18 '14 at 18:27
  • 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? – HHK Jun 18 '14 at 22:24

1 Answers1

0

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

gregavola
  • 2,519
  • 5
  • 30
  • 47