私がAndroid Studioでdebug applicationを試してみると、次のようなログが出力されます。
APKファイル/Users/MyApplicationName/app/build/outputs/apk/app-debug.apkがディスクに存在しません。
Android Studioを再起動しましたが、この問題を解決できません。どうすれば解決できますか?ありがとうございました
このオプションをクリックしてエラーを解決します。
私がAndroid Studio 3.1にアップデートしたとき、私はこの同じ問題に直面していました。あなたが毎回掃除して再構築しなければならないので、私がここで見つけた他のすべての解決策は全く手動でした、それはまったく良くないです。しかし、 Iman Marashi の答えのおかげで、私はそれを解決することができました。
実行 - >構成の編集...に移動します。
起動前セクションに「Gradle対応のメイク」があることを確認してください。
追加するには、+記号をクリックしてGradle-aware Makeを選択するとポップアップが表示されます。テキストフィールドを空のままにしてOKと_をクリックします。OK。
私の場合は、 "プロジェクトとGradleファイルの同期"を実行することが役に立ちました。 Android Studioを再起動してもキャッシュをクリアしても何も起こりませんでした。
結論を知りたいだけの場合は、最後のセクションに進んでください。ありがとう。
通常、プロジェクトの構築に失敗したときに、いくつかの一般的なトリックを試すことができます。
しかし、あなたの問題をより具体的にするために - Android Studioがディスク上でAPKファイルを見つけることができなかったとき。つまり、Android Studioは実際にプロジェクトを正常にビルドし、APKも生成しましたが、何らかの理由でAndroid Studioはファイルを見つけることができません。
この場合、ログに従って印刷されたディレクトリを確認してください。役に立った.
例えば:
Android Studio 2.0プレビュー(ビルド143.2443734)を使用。
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);
}
}
パスに アポストロフィ または & がないことを確認してください。
私はgitブランチを切り替えるときに通常同様の問題を目撃しました。私にとっては、Android Studioのrm -rfv ~/Library/Caches/AndroidStudio*
をシャットダウンして再起動するのがAndroid Studioです。
Android Studio 3.1.1では、[ファイル]メニューから[ファイル]を選択します。プロジェクトをGradleファイルと同期します。
Android Studio 3では、[ファイル]メニューから[ファイル]を選択します。同期します。
その後、プロジェクトをもう一度実行してください。
Android Studioのバージョンは3.2.0 alpha3ですが、それでもこの問題は解決しません。上記のどれも私のために働かなかったので、ここに私の2セントがあります:
これが起こるたびに、私はただコマンドラインからapkを生成します。
gradlew assembleDebug
更新
フォルダ.AndroidStudio[version]
を削除してすべての設定とキャッシュを失うと...問題は解決したようです。
私の場合は、アプリファイルのパスに特殊文字を使用していました。私はAndroid Studioを閉じて、私のアプリのファイルパスから ' 文字を削除しました。プロジェクトを再開したとき、すべてうまくいっていました。
Unixのようなユーザ(Linux/MacOs X)では、〜/ .gradle/caches /を削除する代わりに、コマンドラインで次のようにします。
$ cd path_to_you_project
$ touch build.gradle
その後、Android StudioにAPKを構築するように依頼してください。
トップウィンドウのBuildオプションとBuild APKを使用してapkを構築することにしました。変なことをする必要はありません。
私の問題は、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)
}
}
構築---> APKを構築し、それが動作することを確認してください
ファイル - >キャッシュの無効化/再起動
上記のすべての答えを試してもうまくいかなかった場合は、「インスタントラン」機能を無効にしてみてください。これはすべての試みの後に私を助けました。
ファイル - >設定 - >ビルド、実行、配置 - >インスタントラン - >チェックボックスのチェックを外します
私はまたビルドをきれいにした後、その問題を抱えていました。私にとっての解決策は、私はただグラドルを同期させることでした、そしてそれは私のために働きました。
私には問題があったのですが、どういうわけかそれは本当に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で起こりました。
私の問題はファイル名に数分を含めることでした - それは生成されたファイルが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)
}
}
2018年5月に新しいAndroid Studio 3.1で解決されました。 .gradle、.ideaを削除し、アプリフォルダ内にディレクトリを作成します。その後、もう一度実行してみてください。エラーは表示されません。
私は同じ問題を抱えていた。パスに誤った名前があるためです。このようなパスに特殊文字がありました。
グレード1.5と同じ問題に直面しました
私はビルドファイルをきれいにしなければなりませんでした:
ビルド - >クリーンプロジェクト
そしてAPKを構築してgradleファイルを完全にコンパイルし同期させます。
ビルド - > APKをビルド
なぜ、どうしてそれが起こったのか、私にはまだわかりません。
Build.gradleファイルをlitle情報に変更し、[今すぐ同期]をクリックします。
私はこれらすべてを試してみましたが、どれもうまくいきませんでした。私は結局これらのことのいくつかをしなければならないということになりました。これだけの時間がかかったことに非常に失望しています。
私が抱えていた問題は、AS 3.1へのアップグレード後の私の単体テストの実行に関連していました。
1.)設定の実行/編集/テストの選択...)2. "Gradle-aware Make"にオプションを追加します。その他タブ
がんばろう。
Android Studioのトップバーの[ビルド]オプションに移動し、 'Build APK'を作成します。ビルドが作成されたら、利用可能なフォルダ(app\build\outputs\apk)を開き、次にフォルダを閉じます。 ...それからアプリをインストールしてみてください。
linuxを使用している場合は、app/buildフォルダに書き込み権限を設定してみてください。
私はこのアプリをやって解決した
うまくいかない場合は、プロジェクトをクリーンにしてビルドしてから、もう一度1と2を実行します。
ファイルを変更します:build.gradle(app directory)。実際には、同期のヒントを得るためだけにこのファイルを変更してからプロジェクトを同期する必要があります。
上記で何も助けにはなりませんでしたが、私はBuild Toolsパネルで他のフレーバーに切り替えてから必要なものに切り替えることでこれを理解しました。
Android SDK-Build Toolsをアップデートすることで、この問題を解決しました。
ボタンは "プロジェクトとGradleファイルの同期"と呼ばれ、似ています: ...バージョン番号を更新するときは、常にクリックする必要があります。これにより、別のAPKファイル名が生成されます(ファイル名が変更されていない限り、パッケージのインストールは常に有効です。同等のGradle CLIオプションは--recompile-scripts
のように見えます。
@see 付録D. Gradleコマンドライン 。
私の場合、ただ
表示>ツールウィンドウ> Gradle> [プロジェクト]を右クリック> Gradleプロジェクトを更新
最初に設定を編集することでクリーナーを削除します。それは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).
ディレクトリ〜/ .gradle/caches /を削除します。 Android Studioが開いている間にこれを行っても問題ありません。 (間違ったパッケージ名をインストールするpmを参照してください)Android Studioで「プロジェクトとGradleファイルの同期」アイコンを押します。プロジェクトを実行すると、リモートパスが正しくなります。
回答を参照してください@ .apkを実行するとAndroid Studioが誤ったパッケージ名を取得する
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'
}
}
私はそれが動作するようになった:
私はそれがAPKを再インストールすることを余儀なくさせ、そして今、すべてが正常に実行されていると思います。