私のAndroid Kotlinを使用するアプリケーションは、携帯電話のエミュレーターで 'app'を実行しようとするとこの例外をスローします。プロジェクトをビルドすると、エラーなく正常に実行されます。
私は使っている:
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'
For Android Studio 3.5 Update。(APK署名の問題)
ステップ1:宛先フォルダーの場所を変更することでこの問題を解決しました。
前
c:\user\folder\project\app
後
c:\user\folder\project\apk
For Android Studio 3.4 Update。
ステップ1:アップデート後Android Studio 3.4アプリレベルのモジュールまたはライブラリで使用されているすべての依存関係を追加する必要がありますbuild.gradle
。
ステップ2:プロジェクトのクリーン(ビルド>プロジェクトのクリーン)
ステップ3:プロジェクトの再構築(ビルド>プロジェクトの再構築)
これで、プロジェクトは完全にコンパイルされます。
リリースバージョンの「署名付きAPKを生成」しようとすると、このエラーも発生していました。上記の方法をすべて試してみましたが、残念ながらどれもうまくいきませんでした。
うまくいったのは、アプリのデバッグ署名バージョンを最初に生成してから、リリースバージョンを再度生成することでした。
何が正確に変わったのか、元の問題が何だったのかはわかりませんが、うまくいきました。このエラーは非常に迷惑なので...
Android Studio 3.4.?に更新すると、メッセージが表示されます
原因:buildOutput.apkDataはnullであってはなりません
答えを探して、私は手順を見つけました:
Build
-> Clean Project
しかし、うまくいきませんでした。この手順によりコンテンツが/build
ディレクトリですが、私の経験ではすべての場合に機能しないので、ディレクトリを削除して「生」の方法を試しました。
/app/build/
それから私はプロジェクトを再構築し、それは働いた。
上記の複数の解決策を試しましたが、何も起こりませんでしたが、これを見つけました this
deleting debug/output.json and release/output.json solved my problem
今、私はapkを生成することができます
すべてのソリューションは私と一緒に機能しませんでした
Android Studio V 3.5
Android gradle plugin V 3.4.2
Gradle Version V 5.1.1
この問題を解決するために多くのことを試しましたが、何も助けませんでした。署名済みapkを生成しようとすると、このエラーが発生します。
Android Studio helped(3.4.2)の旧バージョンへのダウングレードは機能しましたが、これは解決策ではありません。
ASの「プロジェクトのクリーン」機能では、生成されたapkが作成された場所はクリーンにならず、プロシージャ全体をブロックしている可能性のあるファイルが1つあります。output.json
Output.jsonを.../app/projectname/release/output.jsonから削除してみてください
Android Studio 3.5 beta 2を使用しており、リリースビルドでのみ同じエラーが発生していました。他のすべてのソリューションを試した後、もう一度コンパイルできる唯一の方法はAndroid Studio 3.4。
わたしにはできる:
プロジェクトからビルドフォルダーを手動で削除します。
Android studioの端末でこのコマンドを入力します
windowsユーザーの場合
gradlew clean build
linuxユーザーの場合
./gradlew clean build
Apkリリース/デバッグの場所を変更するだけです。
例:
/home/sanaebadi/Desktop
変更後:
/home/sanaebadi/apk
私にとっての解決策は、apk出力フォルダーからすべてのファイルとフォルダーを削除することでした。 「プロダクション」フレーバーとoutput.json
「機能」出力フォルダーの問題の原因-> Android Studio 3.6 Canary 7
は、正しいエラーメッセージを表示しました。また、Gradle Plugin 3.5.0を使用したAS 3.5安定版でも機能しています。
Android studio 3.5.1があります。
私のために働く唯一の解決策は、私のルートgradleで使用することです
classpath 'com.Android.tools.build:gradle:3.3.0'
私が試したこと:-すべてのビルドフォルダを手動でクリアします-キャッシュを無効にしますが、これらはどれも動作しません
PS:Android studio 3.5 btwを使用しています
更新:
@Vishrut Mavaniと同じように、リリースバージョンの保存先フォルダーを変更するのは簡単です
通常、この問題はAndroid Studio V3.4からV3.5への更新時に発生します。debug/output.json
およびrelease/output.json
ファイル。
その後、次の手順を試してください。
ステップ1:プロジェクトのクリーンアップ(ビルド>プロジェクトのクリーンアップ)
ステップ2:プロジェクトの再構築(ビルド>プロジェクトの再構築)
すべてのソリューションは私と一緒に機能しませんでした
私の場合、AndroidStudio 3.4+から3.5へのアップデートです。
そして最後に、「Destination Folder」を「app/build/outputs/apk」に変更して解決します
詳細写真
すべてのソリューションを試しましたが、それらのどれも助けませんでした!最後に多くのことを試した後、私はそれを理解しました、ただヒントに従ってください:
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
win:gradlew clean assemble_YOUR_FAVOR_Release
_YOUR_FAVOR_
はオプションの好意です。好意を使用していない場合は、assemble_YOUR_FAVOR_Release
の代わりにassembleRelease
を使用します
私の場合、異なるビルド構成を使用したプロジェクトのビルドと起動は成功しました。ただし、署名されたapkを生成するとエラーCause: buildOutput.apkData must not be null
がスローされますが、一方でapkが生成され、ビルド出力切り替えビューはBUILD SUCCESSFUL
を出力します。手動インストールはメッセージApp not installed
で終了します。私の欠点はcompileSdkVersion 'Android-P'
を使用しており、compileSdkVersion 28
に変更した後はすべてうまくいきます。
私も同じバグに悩まされていました。しかし、私のSigned apk destinationをc/users/project/appからc/users/projectに変更するとうまくいきました。
プロジェクトフォルダー内の既存のビルドバリアントフォルダーとビルドフォルダーをすべて手動で削除してください。
1-生成されたすべてのアプリバンドル(.aab)とすべてのバリアントのAPKを削除します。
2-ビルドフォルダーを削除する
3-クリーンプロジェクト
debugの署名付きAPKを生成すると、releaseの署名付きAPKを生成できます。
この問題は、my Android studio v3.4からv3.5への更新後に発生します。
Debug/output.jsonおよびrelease/output.jsonファイルを削除してこの問題を修正しました
Android Studio 3.5コンパイルdkバージョン28
apk生成作業