APKファイルがディスクに存在しません


224

Android Studioでデバッグアプリケーションを試行すると、次のログ出力が表示されます。

APKファイル/Users/MyApplicationName/app/build/outputs/apk/app-debug.apkがディスクに存在しません。

Android Studioを再起動しましたが、この問題を解決できません。どうすれば解決できますか?ありがとうございました


9
どうすれば解決できますか?apkをコンパイルする
Tim

1
@TimCastelijns実際には、Android Studioが、debugアプリケーションタスクにcreate apkタスクの作成を含めるのに十分なほどインテリジェントではないのではないかと思います。Gradleはこのために作成する必要があります。
Trilarion

1
@Trilarionデフォルトでは、ASはデバッグAPKをコンパイルするGradleのAssembleDebugタスクを実行します。何かが間違っているようです。手動でコンパイルする必要があります
Tim

2
Gradle Make-Awareを追加すると、この問題が修正されました。stackoverflow.com/a/25871525/1712417
Iammesol

2
「Gradleのメイクを意識し、」追加しようstackoverflow.com/questions/18256177/...
アンディ・チェン

回答:


463

このオプションをクリックしてエラーを解決します。

実行:表示>ツールウィンドウ> Gradle> [プ​​ロジェクト]>タスク>ビルド>ビルド


6
プロジェクトディレクトリ名の特殊文字もこのエラーをスローします。
2016年

50
これは私にはまったくうまくいきませんでした。私は、読者に何をすべきかを伝えるだけでなく、なぜそれらが機能するのかを説明する回答をアドバイスします。これにより、後でそれらのエラーを理解/回避/解決できるようになります。
person27 '27 / 10/27

3
これが正確に何をするのか、なぜこの問題が発生したのか説明してください。
Hamidreza Sahraei 2017年

ところで「特殊文字」には数字も含まれます。これはばかげて、無駄な時間を費やしています。facepalm :)
alexr101 2018

5
そのボタンは最新バージョンのAndroid Studioには存在しませんが、「プロジェクトをGradleファイルと同期する」オプションであると思います。
nasch

208

Android Studio V 3.1へのアップデート後にこの問題が発生する場合は、以下をお試しください。

Android Studio 3.1にアップデートしたときも、同じ問題に直面していました。私がここで見つけた他のすべての解決策は、毎回きれいにして再構築しなければならないので、まったく手動ではありませんでした。しかし、ここでイマン・マラシの答えのおかげで、私はそれを解決することができました。

実行->構成の編集...に移動します。

「起動前」セクションに「Gradle-aware Make」があることを確認してください:

実行/デバッグ構成

これを追加するにはクリック+の記号を選択しGradleの対応にするとポップアップが表示されます、ちょうど空のテキストフィールドを残し、クリックOKOK


13
これは、最近の3.1アップデートの修正です。私にとって、この問題の最初の症状は、APKがコードの変更に「応答しない」ことでした。新しいAPKが適切にビルドされていないことは明らかです。
David Gay

この答えは私にとって解決できます。3.1を更新してこのエラーが発生しました。
ZarNi Myo Sett Win 2018

あなたは父親が命の恩人です。
ジョエルリビー2018

うわー!あなたはこのために1000票に値する!Android Studioは1000票に値します。
1QuickQuestion 2018

おかげで、これは間違いなく正しい答えであり、受け入れられるべきものです
Petar Marijanovic

68

私の場合、「プロジェクトをGradleファイルと同期」を実行すると役立ちました。Andoid Studioを再起動したり、キャッシュをクリアしたりしても、何も起こりませんでした。


1
ありがとう。それも私を助けます。Andoid Studioを再起動することも、キャッシュをクリアすることも役に立ちませんでした。
ivan.panasiuk

私の通常のbuild.gradleとは別のファイルにある命名スクリプトを変更した後、トリックは私に代わったので、Android Studioは自動的に変更を認識せず、同期するように要求しました。
Magnus W

これが本当の答えです。
アジズベキアン2017

3
File -> Sync Project with Gradle Files stackoverflow.com/a/19932896/2527204
マーロン

ユニットテストを実行しようとするこの問題がありました。ユニットテストを実行するデバイスを求めていました。
セルジオ

34

結論だけを知りたい場合は、最後のセクションに進んでください。ありがとう。

通常、プロジェクトのビルドが失敗した場合、いくつかの一般的なトリックを試すことができます。

  • ビルド-> クリーンプロジェクト
  • ビルドバリアントの確認
  • Android Studioを再起動します(あなたが言ったように)

しかし、問題をより具体的にするために-Android Studioがディスク上でAPKファイルを見つけられなかった場合 これは、Android Studioが実際にプロジェクトを正常にビルドし、APKも生成したことを意味しますが、何らかの理由で、Android Studioはファイルを見つけることができません。

この場合は、ログに従って、印刷されたディレクトリを確認してください。参考になります。

例えば:

Android Studio 2.0プレビュー(ビルド143.2443734)。

  1. 特定のコミットへのチェックアウト(ヘッドから切り離されるように):git checkout [commit_hash]
  2. プロジェクトを実行する
  3. Android Studioの指示:APKファイル/ Users / MyApplicationName / app / build / outputs / apk / app-debug-HEAD.apkはディスクに存在しません
  4. ディレクトリに移動すると、実際に名前が付けられたファイルがあります:app-debug-(HEAD.apk(追加の括弧付き)
  5. gitブランチを実行する

    *(ヘッドは1a2bfffで切り離されています)

したがって、ここで、gradleビルドスクリプトの誤りが原因で、ファイルの名前付けがどういうわけか間違っていることがわかります。

上記の例は、同じ問題を引き起こす可能性のある1つのシナリオにすぎませんが、あなたと同じ根本原因である必要はありません。

そのため、ディレクトリ確認して(違いを見つけるため)、build.gradleスクリプトを確認することを強くお勧めします(apk名を以下のように変更できます)。

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def newFileName = "whatever you want to name it";
            def apk = output.outputFile;
            output.outputFile = new File(apk.parentFile, newFileName);
        }
    }

2
私の問題は、APK名にアプリのバージョンを追加していたことですが、アプリのバージョンにはxyz形式と「。」があります。(ドット)ネーミングでエラーが発生していました。だから他の点は覚えていないが、apkの前の点は:)
DraganescuValentin

20

パスにアポストロフィまたはがないことを確認してください


「&」が原因で、コンパイルできませんでした。ありがとう@Rim Gazzeh
Marka A

19

起動前に実行/デバッグ構成グレーディング対応のMakeが存在することを確認してください

この画像のように


17

通常、gitブランチを切り替えるときに同様の問題が発生しました。私にとってAndroid Studio rm -rfv ~/Library/Caches/AndroidStudio*をシャットダウンして再起動することがチケットです。


私の同様の問題はこの方法で解決されました。Gradleビルドでapkファイルの名前を変更してバージョン番号をファイルに追加し、メインアクティビティをデバッグしようとして、間違ったapkファイル名(以前のバージョン番号)を実行しようとしました。これがいつ始まったのかはわかりませんが、それが始まらないまではうまくいきました。
David

Androidスタジオのキャッシュは非常に大きな問題です。
GeekHades

そうです。(もう一度)ビルド番号をインクリメントしました。これにより、apkファイル名が変更されます。ここでも、この問題があります。
デビッド

13

Android Studio 3.1.1で、[ファイル]メニューから[ファイル]を選択します。プロジェクトをGradleファイルと同期します。

Android Studio 3で[ファイル]メニューから[ファイル]を選択します。同期します。

次に、プロジェクトを再度実行します。


Studio v3.1.1では、ファイル->プロジェクトをGradleファイルと同期します。そして、あなたは行く
準備

次に、上部のツールバー(アイコン付き)のフィールドで、次にハンマーアイコンから 'app'を構成ドロップダウンで返す必要があります
CodeToLife

11

年は2018年です。AndroidStudioのバージョンは3.2.0 alpha3ですが、まだこの問題が発生します。上記のどれも私にとってうまくいかなかったので、ここに私の2セントがあります:

これが発生するたびに、コマンドラインからapkを生成するだけです。

gradlew assembleDebug

更新

フォルダ.AndroidStudio[version]を削除し、すべての設定とキャッシュを失うことで問題が解決するようです


1
しかし、これは1つのビルドでのみ機能しますか?さらに変更を加えて[再生]ボタンを押すと、古いAPKがプッシュされるだけで、変更のために再構築されません。だから、迷惑な、彼らは考えていたWTF
behelit

7

私の場合、アプリのファイルパスに特殊文字を使用していました。Android Studioを閉じて、アプリのファイルパスから'文字を削除しました。私がプロジェクトを再調査したとき、すべてがうまくいきました。


そうですね、理想的には、Android Studioは、ユーザーがファイルパスで特殊文字を使用できないように十分にスマートでなければなりません。または、私は自分自身で適切なプログラミングプラクティスに従っている必要がありました:)
不滅のコード

6

上部のウィンドウのビルドオプションとビルドAPKを使用してAPKをビルドすることを解決しました。変なことをする必要はありません。


6

Unixのようなユーザー(Linux / MacOs X)の場合、〜/ .gradle / caches /を削除する代わりに、コマンドラインで次のように実行します。

$ cd path_to_you_project
$ touch build.gradle

次にAndroid StudioにAPKのビルドを依頼すると、gradleキャッシュ自体がリセットされます。


5

私の問題は、バージョン番号をAPKに追加していたことです。バージョン番号を変更してGradleを再同期すると、問題が解決しました。

def appendVersionNameVersionCode(variant, defaultConfig) {
    variant.outputs.each { output ->
        if (output.zipAlign) {
            def file = output.outputFile
            def removeApp = file.name.replace("app-", "")
            def removeType = removeApp.replace("-release", "")
            def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
            output.outputFile = new File(file.parent, fileName)
        }

        def file = output.packageApplication.outputFile
        def removeApp = file.name.replace("app-", "")
        def removeType = removeApp.replace("-release", "")
        def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
        output.packageApplication.outputFile = new File(file.parent, fileName)
    }
}

Gradle自体でappendVersionNameVersionCodeを呼び出しましたか?
Dhrupal



2

上記の回答をすべて試してもうまくいかない場合は、「インスタントラン」機能を無効にしてみてください。これはすべての試みの後に私を助けました。

ファイル->設定->ビルド、実行、配置->インスタント実行->そこのチェックボックスをオフにします


2

ビルドをクリーンアップした後、その問題も発生しました。私にとっての解決策は、私がgradleを同期することでした、そしてそれは私のために働きました。


2

私の場合の問題は、テストメソッド名、クラス、またはパッケージが変更されていなくても、デバッグ構成が何らかの理由で無効になることでした。

ここで実行->構成の編集から構成を削除しました:

ここに画像の説明を入力してください

Androidスタジオは自動的に新しいものを作成します。


次に、「ファイル」/「Gradleプロジェクトの再インポート」をクリックする必要があります。これにより、削除された実行構成が再作成されます。
ファンイグナシオバリシッチ

1

Gradle 1.5で同じ問題に直面しました

ビルドファイルをクリーンアップする必要がありました。

ビルド->プロジェクトのクリーン

そして、gradleファイルの完全なコンパイルと同期を強制するAPKをビルドします。

ビルド->ビルドAPK

なぜ、どうやって起こったのか、私にはまだわかりません。



1

同じ問題がありました。パスの名前が間違っていたためです。次のようなパスに特別な文字が含まれていました:C:\ User \ My App \ Projekte-Tablet&Handy「&」文字を削除して、うまくいきました。


1

私の問題は、ファイル名に分を含めることでした-生成されたファイルがappname_debug_0.9.0.1_170214_2217.apkのときにappname_debug_0.9.0.1_170214_2216.apkを探していたため、出力ファイル名コード(他の場所から取得)が2つの異なるポイントから明確に呼び出されていましたビルドで。

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def project = "appname"
            def SEP = "_"
    //        def flavor = variant.productFlavors[0].name
            def buildType = variant.variantData.variantConfiguration.buildType.name
            def version = variant.versionName
            def date = new Date();
            def formattedDate = date.format('yyMMdd_HHmm')

            def newApkName = project + SEP + /*flavor + */ SEP + buildType + SEP + version + SEP + formattedDate + ".apk"

            output.outputFile = new File(output.outputFile.parent, newApkName)
        }
    }

このブロックはどこから来たの?
Nerius Jok、2018年

それは、私が最初にプロジェクトをセットアップしたときからの、他のスタック交換スレッドからのものでした(そして、私が何をしているのかほとんどわかりませんでした-何も変わっていません)。Gradleのこの部分は数回変更されているため、現在は古いコードである可能性があります。
Ian Spencer

1

私にとっての問題は、apkが存在するのに、どういうわけかそれが本当にapkを見つけられないことでした。

The APK file /Users/Paul/AndroidStudioProjects/android-tv-launcher/ui/build/outputs/apk/nameofapk.apk does not exist on disk.
Error while Installing APK

私がしなければならなかったのは、apk-copyの相対パスを右クリックするだけで、

adb install -r <paste of relative path>

そして、APKはインストールされており、行きました。この問題はOSXで発生しました。


1

2018年5月に新しいAndroid Studio 3.1で解決されました。appフォルダー内の.gradle、.ideaおよびbuildディレクトリを削除します。次に、もう一度実行してみてください。エラーは表示されません。


1

キャッシュの同期、クリーニング、再構築、無効化および再起動

それらのどれも私のために働いていません。

リリースフォルダーとデバッグフォルダーにあるAPKファイルとoutput.jsonファイルを削除してから、同期、クリーンアップ、ビルドを試行したところ、問題なく動作しました。


0

build.gradleファイルを小さな情報に変更し、「今すぐ同期」をクリックします。


0

ディレクトリ〜/ .gradle / caches /を削除します。Android Studioが開いている間にこれを実行してもかまいません。(午後の間違ったパッケージ名のインストールを参照してください)Android Studioで[プロジェクトをGradleファイルと同期]アイコンを押します。プロジェクトを実行すると、リモートパスが正しくなります。

回答を参照してください。AndroidStudioは、.apkの実行時にパッケージ名を間違って取得します


0

ログに生成されたパスで-あなたの場合:

/Users/MyApplicationName/app/build/outputs/apk/app-debug.apk

「outputs」フォルダには「apk」フォルダがあります。

それが私の問題でした。そこにない場合は、下のスクリーンショットに従って、gradleで「assembleRelease」タスクを実行する必要があります。

GradleのassembleReleaseタスクを実行する手順 その後、フォルダが生成されます。


0

上記は何の助けにもなりませんでしたが、[ビルドツール]パネルで別のフレーバーに切り替えてから、必要なフレーバーに切り替えることでこれを理解しました。


0

file:build.gradle(appディレクトリ)を変更します。実際、このファイルは変更しないでください。変更のヒントを得るためだけに、プロジェクトを同期してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.