更新Android Studio和Gradle后,Google Inapp计费导致意外的顶级异常

更新Android Studio和Gradle后,Google Inapp计费导致意外的顶级异常,android,gradle,android-studio,in-app-billing,Android,Gradle,Android Studio,In App Billing,我有一个项目,它使用谷歌的Inapp计费服务和IABPhelper类。在我将Android Studio升级到最新的“稳定”版本,并将其从0.8.x升级到1.0.x之前,一切都很顺利 我跟着火车走。但不幸的是,dexDebug出现以下错误: 错误代码1;意外的顶级异常:com.android.dex.util.ExceptionWithContext FAILURE: Build failed with an exception. * What went wrong: Executio

我有一个项目,它使用谷歌的Inapp计费服务和IABPhelper类。在我将Android Studio升级到最新的“稳定”版本,并将其从0.8.x升级到1.0.x之前,一切都很顺利

我跟着火车走。但不幸的是,dexDebug出现以下错误: 错误代码1;意外的顶级异常:com.android.dex.util.ExceptionWithContext

    FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\Program Files (x86)\Android\sdk\build-tools\android-4.4W\dx.bat --dex --no-optimize --output C:\Programmierung\Android_Studio\Aviation\AviationWeather\app\build\intermediates\dex\debug C:\Programmierung\Android_Studio\Aviation\AviationWeather\app\build\intermediates\classes\debug C:\Programmierung\Android_Studio\Aviation\AviationWeather\app\build\intermediates\pre-dexed\debug\support-annotations-21.0.3-d2173d36e782fa1d3f28e5e6281942ff95c70054.jar C:\Programmierung\Android_Studio\Aviation\AviationWeather\app\build\intermediates\pre-dexed\debug\classes-6fc46c00ee854d5ca04c7a8678700fa00a807727.jar C:\Programmierung\Android_Studio\Aviation\AviationWeather\app\build\intermediates\pre-dexed\debug\classes-583108ab433986d269f15fc874476a6a41305753.jar C:\Programmierung\Android_Studio\Aviation\AviationWeather\app\build\intermediates\pre-dexed\debug\internal_impl-21.0.3-ddf1e2aa24f08302c35d4c53fd9a54e9d3e92c3b.jar C:\Programmierung\Android_Studio\Aviation\AviationWeather\app\build\intermediates\pre-dexed\debug\StartAppInApp-2.4.11-6ad73d6077f6fe9aae60a40cb9dad0f7ce3f2b17.jar C:\Programmierung\Android_Studio\Aviation\AviationWeather\app\build\intermediates\pre-dexed\debug\classes-27d7f4d4f4a892505176f27373375f50da12ca15.jar C:\Programmierung\Android_Studio\Aviation\AviationWeather\app\build\intermediates\pre-dexed\debug\libGoogleAnalyticsServices-0f3d24de5fad89dd5a88c6c233a890b5f2a4b117.jar
Error Code:
    1
Output:

    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.util.ExceptionWithContext
        at com.android.dex.util.ExceptionWithContext.withContext(ExceptionWithContext.java:45)
        at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:371)
        at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
        at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
        at com.android.dx.command.dexer.Main.processClass(Main.java:682)
        at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
        at com.android.dx.command.dexer.Main.access$600(Main.java:78)
        at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
        at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
        at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
        at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
        at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
        at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
        at com.android.dx.command.dexer.Main.processOne(Main.java:596)
        at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
        at com.android.dx.command.dexer.Main.run(Main.java:230)
        at com.android.dx.command.dexer.Main.main(Main.java:199)
        at com.android.dx.command.Main.main(Main.java:103)
    Caused by: java.lang.NullPointerException
        at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.java:87)
        at com.android.dx.cf.code.ConcreteMethod.<init>(ConcreteMethod.java:75)
        at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:273)
        ... 22 more
    ...while processing <init> (Lcom/mytowntonight/aviationweather/MainActivity;)V
    ...while processing com/mytowntonight/aviationweather/MainActivity$1.class

    1 error; aborting
但这段代码基本上是谷歌Inapp计费教程的复制品,在Gradle/AndroidStudio更新之前编译得很好。 仅供参考:IabHelper.OnIabSetupFinishedListener是一个公共接口

有什么想法吗,问题是什么?
谢谢大家!

这个问题我已经遇到很多次了。我不知道这个问题的根源是什么,但Linux上最简单的解决方案是重新启动计算机或注销,然后再次登录。如果重新启动/重新登录有帮助,则此问题可能与某种缓存有关

您也可以尝试清理构建,它有时可能会有帮助,但并不总是如此。使用终端:

gradlew clean 

通过将Googles应用内付费助手类更新至最新版本,问题最终得以解决。它们是计费演示/示例的一部分,在我首次实施计费后已被更改。

我使用的是Windows 7。不幸的是,重新启动和清理构建并不能解决问题。错误消息保持不变。这可能是生成工具中的错误。你应该在这里报告:b.android.com我不会删除答案,因为它可能会帮助某人使用Linux操作系统?你能和我们共享build.gradle文件吗?您是否在项目中使用多索引,因为生成错误包含一个索引异常。你的例外来自谷歌分析库。。。
gradlew clean