java - 升级Android SDK导致java.lang.VerifyError崩溃

标签 java android android-support-library verifyerror

自从升级我的 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 Compatibilty 库的源代码中。这个警告在我的 App.onCreate() 被调用之前记录下来。

我已经尝试使用以前与我的应用程序一起使用的旧版本 android-support-v4.jar 和新版本的 android-support-v4.jar 包含在最新的 SDK 中,但两种情况下的结果是相同的(这看起来很有趣吧?)。

同样奇怪的是像这样的警告流:

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

此处引用的 twitter4j 库似乎已正确包含在我的项目中。

我还在学习 Java,所以我不确定是什么导致了这个问题。任何帮助将不胜感激。

仅供引用,完整日志如下:

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)

关于java - 升级Android SDK导致java.lang.VerifyError崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10123118/

相关文章:

java - 使用 JdbcBatchItemWriter 保存在 mysql 数据库中时值发生更改

java - java 8 中的 Lambda 表达式(使用 java.util.Optional 在 HashMap 中进行空检查)

android - FragmentManager.findFragmentByTag 返回 null

android - Flutter - 试图从 reducer 获取小部件上下文的脚手架

android - 带有类型的 Dagger Hilt 抽象类

android - 当 android 支持库更新到 24 时,AlertDialog 构建器崩溃

android - ActionBarActivity 和 FragmentActivity 中的 setContentView

java - 用于独立 java 项目的 Maven Archetype

java - 导出后,Eclipse 中出现错误

android - AppCompat v7-r23。默认情况下,工具栏中的主页按钮不显示