自升级我的
Android SDK以来,我得到一个java.lang.VerifyError崩溃启动我以前工作的应用程序.
看看日志,有一些新的问题导致崩溃,以前没有:
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似乎仍然在Android兼容库的源代码中.在我的App.onCreate()被调用BTW之前,这个警告被记录下来.
我已经尝试使用以前与我的应用程序一起工作的旧版本的android-support-v4.jar,以及最新SDK中包含的新版本的android-support-v4.jar,但是结果在两者中都是一样的案例(看起来很有趣吗?).
同样奇怪的是像这样的警告流:
W/dalvikvm(12455): VFY: unable to find class referenced in signature (Ltwitter4j/User;)
此处引用的twitter4j库似乎正确包含在我的项目中.
我还在学Java,所以不确定是什么可能导致这个问题.任何帮助将不胜感激.
FYI的完整日志如下:
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
解决方法
该库必须放在/ libs文件夹中(注意:不是/ lib)