安卓 - ART / Dalvik类验证失败

6

有些使用 ART 的用户在使用 Aviary SDK 时出现了奇怪的错误。我很困惑为什么会这样(显然只是在 4.4.x 上),因为在 Dalvik 上调用此 SDK 时,应用程序运行得非常完美。有人有任何解决方法吗?Aviary 声称这是 PhoneGap/Cordova 的问题(我们的基础),但我认为这不是问题的原因,因为它只在启动活动时触发。

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

1
这似乎不是 Cordova 的问题。您能否使用 Aviary 创建一个小的测试程序来重现此问题,该程序不包括 Cordova。我认为那将是您最好的选择。 - Simon MacDonald
我已经完成了这个并且它运行良好。看起来这是一个 Cordova/Phonegap 的问题 - 但我不知道为什么。 - gregavola
这是你从Gradle项目转换为JAR的插件吗? - Simon MacDonald
这是他们升级前的Eclipse项目。我无法将Gradle项目转换为JAR文件。使用Eclipse插件无法工作。 - gregavola
你的apk是否已经混淆了? - matiash
显示剩余2条评论
1个回答

0

这是Aviary框架不支持ART的问题。最新版本已经修复了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接