当我尝试在手机的模拟器o中运行“ 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)
...
答案 0 :(得分:130)
点击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'
答案 1 :(得分:89)
对于Android Studio 3.5
调试构建完成,没有任何错误。在创建签名的.apk时会导致相同的错误
buildOutput.apkData must not be null
我找到的简单解决方案是。输入签名凭证后,在apk签名过程中,当您导航到下一个屏幕时,它将询问目标文件夹,只需更改默认路径即可。
假设当前目标路径为
c:\ user \ folder \ project \ app
将其更改为
c:\ user \ folder \ project \
然后它将成功生成签名的apk。
答案 2 :(得分:12)
我的情况下,此问题是由于Android Studio 3.4更新引起的。
步骤1::更新Android Studio 3.4之后,您需要在build.gradle
中添加模块或库中使用的所有依赖项。
步骤2:清理项目(构建>清理项目)
步骤3:重建项目(“生成”>“重建项目”
)现在,您的项目将完美编译。
答案 3 :(得分:9)
答案 4 :(得分:7)
我已经尝试了很多方法来解决此问题,但没有任何帮助。尝试生成签名的APK时出现此错误。
降级到Android Studio的旧版本(3.4.2)可以解决问题,但这不是解决方案。
AS中的“清理项目”功能无法清理生成的apk的创建位置,并且可能有一个文件阻止了整个过程:output.json
尝试从... / app / projectname / release / output.json中删除output.json
答案 5 :(得分:6)
所有解决方案都不适用于我
Android Studio V 3.5
Android gradle插件V 3.4.2
版本V 5.1.1
答案 6 :(得分:6)
我尝试了多种解决方案,但什么都没发生,然后我发现了 this为我工作
deleting debug/output.json and release/output.json solved my problem
现在我可以生成apk
答案 7 :(得分:4)
当尝试为我的发行版“生成签名的APK”时,我也收到此错误。 我尝试了上述所有方法,但不幸的是,没有一种方法有效。
有效的方法是,首先生成应用程序的调试签名版本,然后再次生成发行版。
我不知道发生了什么变化或最初的问题是什么,但是它可以解决问题。我希望它也会对您有帮助,因为此错误非常令人讨厌...
答案 8 :(得分:3)
答案 9 :(得分:3)
只需更改 apk发行/调试位置。
EX:
/home/sanaebadi/Desktop
更改后:
/home/sanaebadi/apk
答案 10 :(得分:3)
对我来说,解决方案是从apk输出文件夹中删除所有文件和文件夹。
为“生产”样式创建签名的apk时出现此问题,“功能”输出文件夹中的output.json
导致了问题-> Android Studio 3.6 Canary 7
向我显示了正确的错误消息。
现在也可以通过Gradle插件3.5.0在AS 3.5稳定版中使用。
答案 11 :(得分:2)
它对我有用:
从项目中手动删除构建文件夹。
在android studio终端中键入以下命令
如果Windows用户
git checkout B
git branch --set-upstream-to A
# shorthand: git branch -u A
如果是Linux用户
gradlew clean build
答案 12 :(得分:2)
通常,此问题发生在将Android Studio V3.4更新到V3.5时。
尝试删除debug/output.json
和release/output.json
文件。
然后尝试以下步骤:
步骤1 :清理项目(构建>清理项目)
步骤2:重建项目(“生成”>“重建项目”
)答案 13 :(得分:2)
解决方案:-
1- Build -> Clean Project
没有帮助
2-{{1}}没有帮助
3-重新启动android studio没有帮助
4-从Build -> Make Project
手动删除Build文件夹,而app
没有帮助
对我来说,唯一的解决方案是从目标文件夹中删除所有旧版本
答案 14 :(得分:2)
更新到Android Studio 3.4.1 ,我收到消息
原因:buildOutput.apkData不能为空
寻找答案,我找到了程序:
Build
-> Clean Project
但是它不起作用,我知道此过程会将内容删除到/build
目录中,但是以我的经验,它在所有情况下都不起作用,所以我尝试了“原始”方式,删除目录:
/app/build/
然后我重建了项目,它就起作用了。
答案 15 :(得分:2)
唯一适用于我的解决方案是在我的root gradle中使用
classpath 'com.android.tools.build:gradle:3.3.0'
我尝试过的方法: -手动清除所有构建文件夹 -使缓存无效 但这些都不是工作
PS:我正在使用android studio 3.5 btw
更新:
就像@Vishrut Mavani一样,更改发行版本的目标文件夹是可行的
答案 16 :(得分:1)
我使用的是Android Studio 3.5 beta 2,并且遇到的错误完全相同,但仅在发布版本中出现。在尝试了我发现的所有其他解决方案之后,唯一能够再次编译的方法就是回到Android Studio 3.4。
答案 17 :(得分:1)
所有解决方案都不适用于我
就我而言,从AndroidStudio 3.4+更新到3.5。
最后,我将“目标文件夹”修改为“ app / build / outputs / apk”来解决它
detail pic
答案 18 :(得分:1)
我尝试了所有解决方案,但没有一个能帮上忙!经过多次尝试,我终于明白了,只要按照提示操作即可:
yourProject/app/
MYAPP_RELEASE_STORE_FILE=KEYSTROK_NAME
MYAPP_RELEASE_KEY_ALIAS=KEY_ALIAS
MYAPP_RELEASE_STORE_PASSWORD=R_PASS
MYAPP_RELEASE_KEY_PASSWORD=K_PASS
android.enableR8=true
应用程序级别 build.gradle (在android内部):
signingConfigs{
release{
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
configurations {
cleanedAnnotations
compile.exclude group: 'org.jetbrains' , module:'annotations'
}
release {
manifestPlaceholders = [analytics_deactivated: "false"]
minifyEnabled true
signingConfig signingConfigs.release
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
mac:./gradlew clean assemble_YOUR_FAVOR_Release
赢:gradlew clean assemble_YOUR_FAVOR_Release
其中_YOUR_FAVOR_
是您的可选帮助,如果您不使用任何帮助,只需使用assembleRelease
而不是assemble_YOUR_FAVOR_Release
答案 19 :(得分:1)
我也被同一错误所困扰。但是将我的 Signed apk目的地从 c / users / project / app 更改为 c / users / project 对我来说是有效的。
答案 20 :(得分:1)
1-删除所有变体的所有生成的应用程序捆绑包(.aab)和APK。
2-删除构建文件夹
3-清洁项目
答案 21 :(得分:1)
手动删除所有现有的构建变体文件夹以及对我有用的项目文件夹中的构建文件夹。
答案 22 :(得分:0)
AS 4.0.1(通过快照安装)
Ubuntu 18.04 lts
通过构建变体配置构建。
无效的缓存/构建/清理等组合本身并没有帮助,唯一有用的是将构建活动的构建变体切换回armDebug
并在此之后进行清理/重新构建。
一旦我切换回所需的变体,我就可以正确构建。
答案 23 :(得分:0)
我找到的简单解决方案是。在输入签名凭据后,在apk签名过程中,当您导航到下一个屏幕时,它将要求输入目标文件夹,只需更改默认路径即可。
假设当前的目标路径为
c:\ user \ folder \ project \ app
将其更改为
c:\ user \ folder \ project
然后它将成功生成签名的APK。
答案 24 :(得分:0)
在我的情况下,具有不同构建配置的构建和启动项目成功。但是另一方面,生成签名的apk将引发错误Cause: buildOutput.apkData must not be null
,并且生成了生成输出切换视图BUILD SUCCESSFUL
。手动安装以消息App not installed
结尾。我的错是使用compileSdkVersion 'android-P'
,更改为compileSdkVersion 28
后一切正常。
答案 25 :(得分:0)
我有android studio 3.5.1。对我来说,以下步骤有效
答案 26 :(得分:0)
生成已签名的APK,以进行调试, 然后您可以为发布生成签名的APK。
答案 27 :(得分:0)
此问题发生在将我的Android Studio v3.4更新到v3.5之后 现在,它工作正常
我通过删除debug / output.json和release / output.json文件解决了此问题
Android Studio 3.5 compilesdkVersion 28
apk生成工作
答案 28 :(得分:0)
似乎清理项目可能会解决问题,但对我来说,它像这样工作。
文件->带有gradle文件的同步项目。