我的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)
        ...

当前回答

如果您使用不同的构建变量,请选择特定的文件夹来生成登录apk文件。当您试图生成登录apk流时,您可以更改路径。对我来说,这很有效。

其他回答

这个问题通常发生在你运行不同项目的多个android studio窗口时。

解决办法是

选择项目,然后删除。gradle并创建文件夹 然后清理和重建项目。

请参考附带的屏幕截图

我的解决方案是删除apk输出文件夹中的所有文件和文件夹。 我在为“生产”风格和输出创建签名apk时遇到了这个问题。在“feature”输出文件夹中的json会导致问题-> Android Studio 3.6 Canary 7向我显示了正确的错误消息。 它现在也可以在AS 3.5和Gradle Plugin 3.5.0上稳定运行。

单击Build -> Clean Project

然后Build -> Make Project

在gradle 3.5.0-alpha3, -alpha5和3.4.0上测试(项目gradle)

classpath 'com.android.tools.build:gradle:3.5.0-alpha03'

FOR Android Studio 3.5 | 3.6

调试构建在没有任何错误的情况下完成。创建带签名的.apk也会导致同样的错误

buildOutput.apkData must not be null

我找到的简单解决方法是。在apk的签名过程中,输入签名凭证后,当您导航到下一个屏幕时,它将要求目标文件夹更改默认路径。

让我们假设当前目标路径为

用户c: \ \文件夹\ \应用项目

改为

用户\文件夹c: \ \ \项目

然后它将成功生成签名的apk。

我有android studio 3.5.1。对我来说,以下步骤是可行的

File ->使缓存失效/重新启动 在android工作室重新启动后,单击Build ->清洁项目 然后Build ->重建项目