Android Studio 0.5.4更新导致Java.Lang.VerifyError错误。

3

我将我的android studio从0.5.3更新到0.5.4后,启动项目时会出现以下错误。

我已通过SDK Manager更新了SDK以获取0.5.4所需的新Android SDK工具。

我还更新了gradle.build中的构建工具,以使用新更新的版本。

我已删除androidpreview文件夹并重新启动了android studio,但无济于事。

我还验证了系统上只有1个SDK,并且在Android studio中的路径正确。

非常感谢任何建议。

以下是Logcat输出...

04-07 10:53:20.126    1656-1656/com.super8bit.singoffbetaversionone D/dalvikvm﹕ Not late-enabling CheckJNI (already on)
04-07 10:53:21.406    1656-1656/com.super8bit.singoffbetaversionone W/dalvikvm﹕ DexOpt: method is in an interface
04-07 10:53:21.406    1656-1656/com.super8bit.singoffbetaversionone I/dalvikvm﹕ Could not find method com.google.android.gms.common.api.GoogleApiClient.isConnected, referenced from method com.google.example.games.basegameutils.GameHelper.beginUserInitiatedSignIn
04-07 10:53:21.406    1656-1656/com.super8bit.singoffbetaversionone W/dalvikvm﹕ VFY: unable to resolve virtual method 9992: Lcom/google/android/gms/common/api/GoogleApiClient;.isConnected ()Z
04-07 10:53:21.406    1656-1656/com.super8bit.singoffbetaversionone W/dalvikvm﹕ VFY:  rejecting opcode 0x6e at 0x0010
04-07 10:53:21.406    1656-1656/com.super8bit.singoffbetaversionone W/dalvikvm﹕ VFY:  rejected Lcom/google/example/games/basegameutils/GameHelper;.beginUserInitiatedSignIn ()V
04-07 10:53:21.406    1656-1656/com.super8bit.singoffbetaversionone W/dalvikvm﹕ Verifier rejected class Lcom/google/example/games/basegameutils/GameHelper;
04-07 10:53:21.406    1656-1656/com.super8bit.singoffbetaversionone D/AndroidRuntime﹕ Shutting down VM
04-07 10:53:21.406    1656-1656/com.super8bit.singoffbetaversionone W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0xb3a80ba8)
04-07 10:53:21.506    1656-1656/com.super8bit.singoffbetaversionone E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.super8bit.singoffbetaversionone, PID: 1656
    java.lang.VerifyError: com/google/example/games/basegameutils/GameHelper
            at com.google.example.games.basegameutils.BaseGameActivity.getGameHelper(BaseGameActivity.java:93)
            at com.google.example.games.basegameutils.BaseGameActivity.onCreate(BaseGameActivity.java:103)
            at com.super8bit.singoffbetaversionone.Main.onCreate(Main.java:37)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
1个回答

2

java.lang.VerifyError是由于在运行时使用的库与编译时不同所导致的。在运行时,当方法的签名不匹配时,就会抛出这个错误。或者是因为编译器bug(虽然这种情况很少见)。

请检查这一行:

Could not find method com.google.android.gms.common.api.GoogleApiClient.isConnected, referenced........

看起来你在运行时没有使用编译时使用的同一库。


1
你说得对,我编辑了basegame项目的build.gradle文件(之前被忽略了),使其与主项目的gradle文件匹配,所以一切都解决了。 - Jesson Atherton

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