升级Android SDK中引起java.lang.VerifyError崩溃 [英] Upgrading Android SDK causes java.lang.VerifyError crash

查看:520
本文介绍了升级Android SDK中引起java.lang.VerifyError崩溃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于升级我的Andr​​oid SDK中,我得到了 java.lang.VerifyError 崩溃启动我的previously运行的应用程序。

看日志,有通往被认为不存在previously崩溃了一些新的问题:

 找不到方法android.support.v4.content.LocalBroadcastManager.getInstance,从方法com.myapp.android.App.setOAuthLoginState引用
04-12 19:43:10.249:W / dalvikvm(9508):VFY:无法解析静态方法251:Landroid /支持/ V4 /内容/ LocalBroadcastManager; .getInstance(Landroid /内容/上下文)Landroid /支持/ V4 /内容/ LocalBroadcastManager;
04-12 19:43:10.249:D / dalvikvm(9508):VFY:更换运code 0x71为0x0014
 

android.support.v4.content.LocalBroadcastManager.getInstance 似乎仍然在源$ C ​​$ C为Android相容性图书馆。这个警告我App.onCreate前登录()被调用BTW。

我一直使用 Android的支持 - v4.jar 是previously我的申请工作,同时也新版<$既有旧版本尝试C $ C> Android的支持 - v4.jar 包含在最新的SDK,但结果是在这两种情况下是相同的(这似乎有趣吧?)。

此外奇怪是,像这样的警告的流:

  W / dalvikvm(12455):VFY:找不到签名中引用的类(Ltwitter4j /用户;)
 

此处引用的twitter4j库出现在我的项目被列入正常。

我还在学习Java的,所以我不确定什么可能会造成这个问题。任何帮助将大大AP preciated。

FYI完整日志如下:

  04-12 19:43:07.585:W / ActivityThread(9508):应用com.myapp.android正在等待调试器在端口8100 ...
04-12 19:43:07.593:我/的System.out(9508):发送等待块
04-12 19:43:07.601:I / dalvikvm(9508):调试器被激活
04-12 19:43:07.796:我/的System.out(9508):调试器连接
04-12 19:43:07.796:我/的System.out(9508):等待调试器来解决?
04-12 19:43:10.007:我/的System.out(9508):调试器已落户(1403)
04-12 19:43:10.249:I / dalvikvm(9508):找不到方法android.support.v4.content.LocalBroadcastManager.getInstance,从方法com.myapp.android.App.setOAuthLoginState引用
04-12 19:43:10.249:W / dalvikvm(9508):VFY:无法解析静态方法251:Landroid /支持/ V4 /内容/ LocalBroadcastManager; .getInstance(Landroid /内容/上下文)Landroid /支持/ V4 /内容/ LocalBroadcastManager;
04-12 19:43:10.249:D / dalvikvm(9508):VFY:更换运code 0x71为0x0014
04-12 19:43:10.265:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /微博)
04-12 19:43:10.265:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /微博)
04-12 19:43:10.272:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /用户;)
04-12 19:43:10.272:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /用户;)
04-12 19:43:10.272:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /用户;)
04-12 19:43:10.272:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /用户;)
04-12 19:43:10.272:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /用户;)
04-12 19:43:10.272:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /用户;)
04-12 19:43:10.272:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /微博)
04-12 19:43:10.280:E / dalvikvm(9508):找不到类的twitter4j.conf.ConfigurationBuilder,从法org.tweetalib.twitter.TwitterManager.getAndConfigureTwitterInstance引用
04-12 19:43:10.280:W / dalvikvm(9508):VFY:无法解析新的实例528(Ltwitter4j / CONF / ConfigurationBuilder;)在Lorg / tweetalib /微博/ TwitterManager;
04-12 19:43:10.280:D / dalvikvm(9508):VFY:更换运code输入0x22为0x0013
04-12 19:43:10.288:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /认证/ RequestToken;)
04-12 19:43:10.288:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /认证/ RequestToken;)
04-12 19:43:10.296:W / dalvikvm(9508):VFY:找不到签名中引用的类(Ltwitter4j /微博)
04-12 19:43:10.296:I / dalvikvm(9508):找不到方法twitter4j.Twitter.getAccountSettings,从方法引用org.tweetalib.twitter.TwitterManager.isAuthenticated
04-12 19:43:10.296:W / dalvikvm(9508):VFY:无法解析接口方法2419:Ltwitter4j /微博; .getAccountSettings()Ltwitter4j / AccountSettings;
04-12 19:43:10.296:D / dalvikvm(9508):VFY:更换运code 0x72在×0008
04-12 19:43:10.296:W / dalvikvm(9508):VFY:无法解决的异常类519(Ltwitter4j / TwitterException;)
04-12 19:43:10.296:W / dalvikvm(9508):VFY:无法找到的地址0xd中的异常处理程序
04-12 19:43:10.296:W / dalvikvm(9508):VFY:拒绝Lorg / tweetalib /微博/ TwitterManager; .isAuthenticated()z
04-12 19:43:10.296:W / dalvikvm(9508):VFY:拒绝运code在0x000d 0X0D
04-12 19:43:10.296:W / dalvikvm(9508):VFY:拒绝Lorg / tweetalib /微博/ TwitterManager; .isAuthenticated()z
04-12 19:43:10.296:W / dalvikvm(9508):验证拒绝类Lorg / tweetalib /微博/ TwitterManager;
04-12 19:43:10.538:D / dalvikvm(9508):主题ID = 1:仍暂停撤消后(SC = 1 DC = 1)
04-12 19:43:16.780:D / AndroidRuntime(9508):关闭虚拟机
04-12 19:43:16.780:W / dalvikvm(9508):主题ID = 1:螺纹退出与未捕获的异常(组= 0x40a5a1f8)
04-12 19:43:16.804:E / AndroidRuntime(9508):致命异常:主要
04-12 19:43:16.804:E / AndroidRuntime(9508):java.lang.VerifyError:组织/ tweetalib /微博/ TwitterManager
04-12 19:43:16.804:E / AndroidRuntime(9508):在com.myapp.android.App.onCreate(App.java:308)
04-12 19:43:16.804:E / AndroidRuntime(9508):在android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
04-12 19:43:16.804:E / AndroidRuntime(9508):在android.app.ActivityThread.handleBindApplication(ActivityThread.java:3925)
04-12 19:43:16.804:E / AndroidRuntime(9508):在android.app.ActivityThread.access $ 1300(ActivityThread.java:122)
04-12 19:43:16.804:E / AndroidRuntime(9508):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1184)
04-12 19:43:16.804:E / AndroidRuntime(9508):在android.os.Handler.dispatchMessage(Handler.java:99)
04-12 19:43:16.804:E / AndroidRuntime(9508):在android.os.Looper.loop(Looper.java:137)
04-12 19:43:16.804:E / AndroidRuntime(9508):在android.app.ActivityThread.main(ActivityThread.java:4340)
04-12 19:43:16.804:E / AndroidRuntime(9508):在java.lang.reflect.Method.invokeNative(本机方法)
04-12 19:43:16.804:E / AndroidRuntime(9508):在java.lang.reflect.Method.invoke(Method.java:511)
04-12 19:43:16.804:E / AndroidRuntime(9508):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)
04-12 19:43:16.804:E / AndroidRuntime(9508):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-12 19:43:16.804:E / AndroidRuntime(9508):在dalvik.system.NativeStart.main(本机方法)
04-12 19:43:20.585:W / JDWP(9508):调试器告诉VM退出与code = 1
04-12 19:43:20.585:I / dalvikvm(9508):GC寿命分配:10536字节
 

解决方案

该库已被放置在/ libs文件夹中(注意:不是/ lib中)

Since upgrading my Android SDK, I get a java.lang.VerifyError crash booting my previously working application.

Looking at the logs, there are a few new issues leading up the crash that were not there previously:

Could not find method android.support.v4.content.LocalBroadcastManager.getInstance, referenced from method com.myapp.android.App.setOAuthLoginState
04-12 19:43:10.249: W/dalvikvm(9508): VFY: unable to resolve static method 251: Landroid/support/v4/content/LocalBroadcastManager;.getInstance (Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager;
04-12 19:43:10.249: D/dalvikvm(9508): VFY: replacing opcode 0x71 at 0x0014

android.support.v4.content.LocalBroadcastManager.getInstance appears to still be in the source code for the Android Compatibilty library. This warning is logged before my App.onCreate() is called BTW.

I have tried using both the older version of android-support-v4.jar that previously worked with my application, and also the new version of android-support-v4.jar included in the latest SDK, but the result is the same in both cases (which seems interesting right?).

Also weird is the stream of warnings like so:

W/dalvikvm(12455): VFY: unable to find class referenced in signature (Ltwitter4j/User;)

The twitter4j library referenced here appears to be included correctly in my project.

I'm still learning Java, so am unsure what might be causing this issue. Any help would be greatly appreciated.

FYI the full log is below:

04-12 19:43:07.585: W/ActivityThread(9508): Application com.myapp.android is waiting for the debugger on port 8100...
04-12 19:43:07.593: I/System.out(9508): Sending WAIT chunk
04-12 19:43:07.601: I/dalvikvm(9508): Debugger is active
04-12 19:43:07.796: I/System.out(9508): Debugger has connected
04-12 19:43:07.796: I/System.out(9508): waiting for debugger to settle...
04-12 19:43:10.007: I/System.out(9508): debugger has settled (1403)
04-12 19:43:10.249: I/dalvikvm(9508): Could not find method android.support.v4.content.LocalBroadcastManager.getInstance, referenced from method com.myapp.android.App.setOAuthLoginState
04-12 19:43:10.249: W/dalvikvm(9508): VFY: unable to resolve static method 251: Landroid/support/v4/content/LocalBroadcastManager;.getInstance (Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager;
04-12 19:43:10.249: D/dalvikvm(9508): VFY: replacing opcode 0x71 at 0x0014
04-12 19:43:10.265: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/Twitter;)
04-12 19:43:10.265: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/Twitter;)
04-12 19:43:10.272: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/User;)
04-12 19:43:10.272: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/User;)
04-12 19:43:10.272: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/User;)
04-12 19:43:10.272: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/User;)
04-12 19:43:10.272: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/User;)
04-12 19:43:10.272: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/User;)
04-12 19:43:10.272: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/Twitter;)
04-12 19:43:10.280: E/dalvikvm(9508): Could not find class 'twitter4j.conf.ConfigurationBuilder', referenced from method org.tweetalib.twitter.TwitterManager.getAndConfigureTwitterInstance
04-12 19:43:10.280: W/dalvikvm(9508): VFY: unable to resolve new-instance 528 (Ltwitter4j/conf/ConfigurationBuilder;) in Lorg/tweetalib/twitter/TwitterManager;
04-12 19:43:10.280: D/dalvikvm(9508): VFY: replacing opcode 0x22 at 0x0013
04-12 19:43:10.288: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/auth/RequestToken;)
04-12 19:43:10.288: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/auth/RequestToken;)
04-12 19:43:10.296: W/dalvikvm(9508): VFY: unable to find class referenced in signature (Ltwitter4j/Twitter;)
04-12 19:43:10.296: I/dalvikvm(9508): Could not find method twitter4j.Twitter.getAccountSettings, referenced from method org.tweetalib.twitter.TwitterManager.isAuthenticated
04-12 19:43:10.296: W/dalvikvm(9508): VFY: unable to resolve interface method 2419: Ltwitter4j/Twitter;.getAccountSettings ()Ltwitter4j/AccountSettings;
04-12 19:43:10.296: D/dalvikvm(9508): VFY: replacing opcode 0x72 at 0x0008
04-12 19:43:10.296: W/dalvikvm(9508): VFY: unable to resolve exception class 519 (Ltwitter4j/TwitterException;)
04-12 19:43:10.296: W/dalvikvm(9508): VFY: unable to find exception handler at addr 0xd
04-12 19:43:10.296: W/dalvikvm(9508): VFY:  rejected Lorg/tweetalib/twitter/TwitterManager;.isAuthenticated ()Z
04-12 19:43:10.296: W/dalvikvm(9508): VFY:  rejecting opcode 0x0d at 0x000d
04-12 19:43:10.296: W/dalvikvm(9508): VFY:  rejected Lorg/tweetalib/twitter/TwitterManager;.isAuthenticated ()Z
04-12 19:43:10.296: W/dalvikvm(9508): Verifier rejected class Lorg/tweetalib/twitter/TwitterManager;
04-12 19:43:10.538: D/dalvikvm(9508): threadid=1: still suspended after undo (sc=1 dc=1)
04-12 19:43:16.780: D/AndroidRuntime(9508): Shutting down VM
04-12 19:43:16.780: W/dalvikvm(9508): threadid=1: thread exiting with uncaught exception (group=0x40a5a1f8)
04-12 19:43:16.804: E/AndroidRuntime(9508): FATAL EXCEPTION: main
04-12 19:43:16.804: E/AndroidRuntime(9508): java.lang.VerifyError: org/tweetalib/twitter/TwitterManager
04-12 19:43:16.804: E/AndroidRuntime(9508):     at com.myapp.android.App.onCreate(App.java:308)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3925)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at android.app.ActivityThread.access$1300(ActivityThread.java:122)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1184)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at android.os.Looper.loop(Looper.java:137)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at android.app.ActivityThread.main(ActivityThread.java:4340)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at java.lang.reflect.Method.invokeNative(Native Method)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at java.lang.reflect.Method.invoke(Method.java:511)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-12 19:43:16.804: E/AndroidRuntime(9508):     at dalvik.system.NativeStart.main(Native Method)
04-12 19:43:20.585: W/jdwp(9508): Debugger is telling the VM to exit with code=1
04-12 19:43:20.585: I/dalvikvm(9508): GC lifetime allocation: 10536 bytes

解决方案

The library has to be placed in /libs folder (note: not /lib)

这篇关于升级Android SDK中引起java.lang.VerifyError崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆