web-dev-qa-db-ja.com

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

私がAndroid Studioでdebug applicationを試してみると、次のようなログが出力されます。

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

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

211
sorunluadam

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

Run: View > Tool Windows > Gradle > [project] > Tasks > build > build

456

あなたがAndroid Studio V 3.1へのアップデート後にこの問題に直面しているなら、それから以下を試してください。

私がAndroid Studio 3.1にアップデートしたとき、私はこの同じ問題に直面していました。あなたが毎回掃除して再構築しなければならないので、私がここで見つけた他のすべての解決策は全く手動でした、それはまったく良くないです。しかし、 Iman Marashi の答えのおかげで、私はそれを解決することができました。

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

起動前セクションに「Gradle対応のメイク」があることを確認してください。

Run/Debug Configurations

追加するには、+記号をクリックしてGradle-aware Makeを選択するとポップアップが表示されます。テキストフィールドを空のままにしてOKと_をクリックします。OK

196
Seven

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

62
Bartek

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

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

  • ビルド - > クリーンプロジェクト
  • チェック バリアントを作成
  • 再起動 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ファイル/ユーザー/ MyApplicationName /アプリ/ビルド/出力/ apk / app-debug-HEAD.apk はディスクに存在しない
  4. ディレクトリに移動します。実際に名前が付けられたファイルがあります。 app-debug-(HEAD.apk (括弧付き))
  5. git branch を実行

    *(HEADは1a2bfffで切り離されました)

それで、ここであなたは見ることができた、 私のgradle build scriptの間違いのために 、ファイルの命名はどういうわけか間違っている。

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

その結果、 ディレクトリをチェックして (違いを見つける)、そして build.gradle スクリプトをチェックすることを強くお勧めします。 ):

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);
        }
    }
33
Jing Li

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

20
Rim Gazzah

起動前に実行/デバッグ構成>> _セクションにグレーディングに対応したMakeがあることを確認してください。

Like this image

19
Iman Marashi

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

17
user213493

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

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

その後、プロジェクトをもう一度実行してください。

12
live-love

Android Studioのバージョンは3.2.0 alpha3ですが、それでもこの問題は解決しません。上記のどれも私のために働かなかったので、ここに私の2セントがあります:

これが起こるたびに、私はただコマンドラインからapkを生成します。

gradlew assembleDebug

更新

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

11
Androiderson

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

7
Immortal Code

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

$ cd path_to_you_project
$ touch build.gradle

その後、Android StudioにAPKを構築するように依頼してください。

6

トップウィンドウのBuildオプションとBuild APKを使用してapkを構築することにしました。変なことをする必要はありません。

6
Mun0n

私の問題は、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)
    }
}
5
Lou Morda

構築---> APKを構築し、それが動作することを確認してください

3
Kadir altınok

ファイル - >キャッシュの無効化/再起動

2
dvrm

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

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

2
AnZ

私の場合は、テストメソッド名、クラス、またはパッケージが変更されていなくても、デバッグ用の 設定が無効になる ということになります。

ここでRun-> Edit Configurationsから設定を削除しました。

enter image description here

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

2
ByteArtisan

私はまたビルドをきれいにした後、その問題を抱えていました。私にとっての解決策は、私はただグラドルを同期させることでした、そしてそれは私のために働きました。

2
u_pendra

私には問題があったのですが、どういうわけかそれは本当に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
Boldijar Paul

私の問題はファイル名に数分を含めることでした - それは生成されたファイルがappname_debug_0.9.0.1_170214_2217.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)
        }
    }
1
Ian Spencer

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

1
Gerardo Suarez

私は同じ問題を抱えていた。パスに誤った名前があるためです。このようなパスに特殊文字がありました。

1
Orientos

グレード1.5と同じ問題に直面しました

私はビルドファイルをきれいにしなければなりませんでした:

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

そしてAPKを構築してgradleファイルを完全にコンパイルし同期させます。

ビルド - > APKをビルド

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

1
Simon PA

あなたのログで生成されたパスでそれがあなたのケースであることを確認してください:

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

フォルダ "output"には確かに "apk"フォルダがあります。

それが私の問題でした。それがない場合は、以下のスクリーンショットに従って「assembleRelease」タスクを実行してください。

Steps to run the gradle assembleRelease task フォルダが生成されます。

0
Amgad

Build.gradleファイルをlitle情報に変更し、[今すぐ同期]をクリックします。

0
凤清云

私はこれらすべてを試してみましたが、どれもうまくいきませんでした。私は結局これらのことのいくつかをしなければならないということになりました。これだけの時間がかかったことに非常に失望しています。

私が抱えていた問題は、AS 3.1へのアップグレード後の私の単体テストの実行に関連していました。

1.)設定の実行/編集/テストの選択...)2. "Gradle-aware Make"にオプションを追加します。その他タブ

がんばろう。

0
Rob Breidecker

Android Studioのトップバーの[ビルド]オプションに移動し、 'Build APK'を作成します。ビルドが作成されたら、利用可能なフォルダ(app\build\outputs\apk)を開き、次にフォルダを閉じます。 ...それからアプリをインストールしてみてください。

0
BISHWAJEET

linuxを使用している場合は、app/buildフォルダに書き込み権限を設定してみてください。

0

私はこのアプリをやって解決した

  1. 初回ビルド - > APKをビルド
  2. 今すぐアプリを実行する

うまくいかない場合は、プロジェクトをクリーンにしてビルドしてから、もう一度1と2を実行します。

0
saigopi

Android Studio 2.2.1を使用して、上部のドロップダウンメニューからTools> AndroidのSync Project with Gradle Filesオプションをクリックしました。

上記の回答と同様に、このオプションを使用する方法のスクリーンショットについては下記を参照してください。

enter image description here

0
Lee Brindley

ファイルを変更します:build.gradle(app directory)。実際には、同期のヒントを得るためだけにこのファイルを変更してからプロジェクトを同期する必要があります。

0
兰坡阳

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

0

Android SDK-Build Toolsをアップデートすることで、この問題を解決しました。

ボタンは "プロジェクトとGradleファイルの同期"と呼ばれ、似ています: Gradle Sync ...バージョン番号を更新するときは、常にクリックする必要があります。これにより、別のAPKファイル名が生成されます(ファイル名が変更されていない限り、パッケージのインストールは常に有効です。同等のGradle CLIオプションは--recompile-scriptsのように見えます。

@see 付録D. Gradleコマンドライン

0
Martin Zeitler

私の場合、ただ

表示>ツールウィンドウ> Gradle> [プ​​ロジェクト]を右クリック> Gradleプロジェクトを更新

0
Jenkyn

最初に設定を編集することでクリーナーを削除します。それはapkをビルドした後でビルドをクリーニングするかもしれません。

Click on edit from set run/debug then click on gradle list select the clean project item and then click on -(top 2nd from left).
0
Sonu Kumar

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

回答を参照してください@ .apkを実行するとAndroid Studioが誤ったパッケージ名を取得する

0
mask
    1) This problem occure due to apk file .if your apk file
        (output/apk/debug.apk) not generated in this format . 

    2) you should use always in gradle file .

    buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
            }
        }
0
priti

私はそれが動作するようになった:

  1. プロジェクトを閉じる
  2. Android Studioの「ようこそ」ウィンドウ(または「ファイル」>「新規」)から、「プロジェクトのインポート」をクリックします。

私はそれがAPKを再インストールすることを余儀なくさせ、そして今、すべてが正常に実行されていると思います。

0
Viren Mody