我的android应用程序使用Kotlin抛出这个异常时,我试图在模拟器运行'应用程序'在我的手机。当我构建我的项目时,它运行良好,没有错误。

我正在使用:

SDK 28 (Android 9.0 (Pie)) Gradle 5.1.1 Gradle Plugin 3.5.0-alpha03 芬兰湾的科特林1.3.10 Java 1.8.0_151 OSX 10.13.2

    org.gradle.internal.exceptions.LocationAwareException: buildOutput.apkData must not be null
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:99)
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65)
        at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:39)
        at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:29)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:194)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:141)
        ...
    Caused by: java.lang.IllegalStateException: buildOutput.apkData must not be null
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:103)
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:67)
        at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:174)
        at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:691)
        at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:721)
        at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:712)
        ...

当前回答

AS 4.0.1(通过snap安装)

乌班图18.04升

通过构建变量配置构建。

invalidate cache / build / clean等组合在他们自己没有帮助,唯一有帮助的是将构建活动的构建变量切换回armDebug和clean / rebuild。

一旦我切换回我想要的变体,我就可以正确地构建。

其他回答

更新到Android Studio 3.4 ?我明白了

原因:buildOutput。apkData不能为空

为了寻找答案,我找到了这个程序:

Build ->清洁项目

但它不起作用,我知道这个过程将删除内容到/build目录,但根据我的经验,它在所有情况下都不起作用,所以我尝试了“原始”的方式,删除目录:

/app/build/ 

然后我重新构建了这个项目,它工作了。

在我的案例中,使用不同的构建配置构建和启动项目是成功的。但是生成签名apk时会抛出错误原因:buildOutput。apkData不能为空,另一方面apk被生成并且Build Output切换视图打印Build SUCCESSFUL。手动安装结束,提示App未安装。我的错误是使用compileSdkVersion 'android-P',在更改为compileSdkVersion 28后一切正常。

手动删除所有现有的构建变量文件夹以及项目文件夹中的构建文件夹为我工作。

唯一适合我的解决方案是在我的根gradle中使用

classpath 'com.android.tools.build:gradle:3.3.0'

我的尝试: -手动清除所有构建文件夹 -使缓存失效 但这些都不是工作

PS:顺便说一句,我使用的是android studio 3.5

更新:

就像@Vishrut Mavani一样,改变你的发布版本的目标文件夹是工作

这个问题发生在更新我的Android studio v3.4到v3.5之后 现在,它工作得很好

我通过删除调试/输出修复了这个问题。Json和释放/输出。json文件

Android Studio 3.5 compilesdkVersion 28

Apk产生工作