当我尝试在我的手机中的模拟器中运行'app'时,使用Kotlin的我的Android应用程序抛出此异常。当我构建我的项目时,它运行良好,没有错误。
我在用:
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)
...
点击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'
在我的情况下由于Android Studio 3.4更新,会出现此问题。
第1步:更新Android Studio 3.4
后,您需要在应用级别build.gradle
中添加模块或库中使用的所有依赖项。
第2步:清洁项目(构建>清洁项目)
第3步:重建项目(构建>重建项目)
现在,您的项目将完美编译。
当我尝试为我的发布版本“生成签名APK”时,我也遇到了这个错误。我尝试了所有上述方法,遗憾的是没有一个对我有效。
有用的是,首先生成应用程序的调试签名版本,然后再生成第一个版本。
我不知道究竟发生了什么变化或原始问题是什么,但它确实奏效了。我希望它也会对你有所帮助,因为这个错误非常烦人......
这个对我有用:
如果是windows用户
gradlew clean build
如果linux用户
./gradlew clean build
我使用的是Android Studio 3.5 beta 2,我遇到了完全相同的错误,但仅限于我的发布版本。在尝试了我发现的所有其他解决方案之后,我能够再次编译的唯一方法就是回到Android Studio 3.4。
更新到Android Studio 3.4.1我收到消息
原因:buildOutput.apkData不能为null
寻找答案我找到了程序:
Build
- > Clean Project
但它不起作用,我知道这个程序会将内容删除到/build
目录但是根据我的经验它在所有情况下都不起作用,所以我尝试了“原始”方式,删除目录:
/app/build/
然后我重建项目,它的工作。
在我的情况下,使用不同构建配置的构建和启动项目是成功的。但生成签名的apk抛出错误Cause: buildOutput.apkData must not be null
另一方面apk生成和构建输出切换视图打印BUILD SUCCESSFUL
。手动安装以消息App not installed
结束。我的错是使用compileSdkVersion 'android-P'
,在换到compileSdkVersion 28
后一切顺利。