存在。當我試圖在Android Studio中調試應用給出了這樣的日誌輸出:APK文件磁盤上不
The APK file /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk does not exist on disk.
我重新啓動Android的工作室,但我解決不了這個問題。我該如何解決它? 謝謝
存在。當我試圖在Android Studio中調試應用給出了這樣的日誌輸出:APK文件磁盤上不
The APK file /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk does not exist on disk.
我重新啓動Android的工作室,但我解決不了這個問題。我該如何解決它? 謝謝
單擊此選項來解決錯誤:
我希望我每次回來閱讀時都能回覆這個答案。 – mgarciaisaia
項目目錄名中的特殊字符也會引發此錯誤。 –
我不知道,但這也適用於我。投票表示感謝! – patrickjason91
如果你只是想知道結論,請轉到最後一節。謝謝。
一般建設項目失敗時,一些常用的技巧,你可以嘗試:
但是要莫針對您的問題 - 當Android Studio無法在磁盤上找到APK文件時。這意味着Android Studio實際上已經成功構建了該項目,並且還生成了APK,但由於某些原因,Android Studio無法找到該文件。
在這種情況下,請根據日誌檢查打印的目錄。這很有幫助。
例如:
藉助Android工作室2.0預覽(建立143.2443734)。
運行的Git分支
*(HEAD在1a2bfff分離)
所以在這裏你可以看到,由於我gradle這個構建腳本的錯誤,文件命名是某種錯誤的。
上面的示例只是一個可能導致相同問題的情況,但並非必須與您的問題相同。
因此,我強烈建議您到檢查目錄(找到差異),並檢查您的構建。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);
}
}
我的問題是我在APK名稱中添加了應用程序版本,但應用程序版本具有xyz格式和「。」。 (點)在命名導致錯誤。所以記得沒有其他的點,但之前的apk :) – DraganescuValentin
我通常看到一個類似的問題時,我切換的Git分支。對於我關閉Android Studio rm -rfv ~/Library/Caches/AndroidStudio*
並重新啓動Android Studio是門票。
在我的情況下,執行「與Gradle文件同步項目」幫助。無論是重新啓動Andoid Studio還是清除緩存都不做任何事情。
謝謝。它也幫助我。重新啓動Andoid Studio和清除緩存都沒有幫助。 –
在更改命名腳本後,我改變了命名腳本,這個命令腳本與我的普通'build.gradle'文件不同,所以Android Studio沒有自動選擇更改並提示我進行同步。 – BadCash
這是真正的答案。 – azizbekian
我已經解決了使用頂部窗口和構建APK中的構建選項來構建apk。不需要做一些奇怪的事情。
面臨着同樣的問題與gradle這個1.5
我不得不清理生成文件:
Build -> Clean project
,建設APK強制完成Gradle文件的編譯和同步:
Build -> Build APK
我仍然不知道爲什麼或如何發生壽。
如果您使用的是Linux,請嘗試將設置寫入權限設置爲app/build文件夾。
我將build.gradle文件更改爲litle信息,然後單擊「立即同步」,就好了。
刪除目錄〜/ .gradle/caches /。在Android Studio打開時執行此操作即可。 (請參閱安裝錯誤的軟件包名稱) 在Android Studio上按「與Gradle文件同步項目」圖標 運行該項目,遠程路徑將正確。
參考答案@Android Studio gets package name wrong when running .apk
對於Unix用戶一樣(的Linux/MacOS X系統),而不是刪除〜/ .gradle /緩存/,在命令行中執行:
$ cd path_to_you_project
$ touch build.gradle
然後問過Android Studio要構建APK,它將自己重置gradle緩存。
我的問題是我將版本號追加到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
文件 - >的Invalidate緩存/重啓
我有同樣的問題。這是由於路徑中的虛假名稱。在這樣的路徑中有一個特殊的字符: C:\ User \ My App \ Projekte-Tablet & Handy 我刪除了「&」字符,它運行良好。
就我而言,我在應用程序文件路徑中使用了一個特殊字符。我關閉了Android Studio並從我的應用程序文件路徑中刪除了'字符。當我重新開始項目時,一切正常。
是的,理想情況下,Android Studio應該足夠聰明,以防止用戶在其文件路徑中使用特殊字符。或者更好的,我應該自己遵循好的編程實踐:) –
如果您嘗試了以上所有答案,但無法正常工作,請嘗試禁用「即時運行」功能。經過一切努力,這一次幫助我。
文件 - >設置 - >構建,執行,部署 - >即時運行 - >取消選中複選框有
確保你沒有撇號或&在你的路徑
'&'是讓我無法編譯的東西。謝謝@Rim Gazzeh –
清理版本後,我也遇到了這個問題。對我來說,解決方案是我只是同步了gradle,它對我很有用。
上面沒有任何幫助,但我通過在「構建工具」面板中切換到另一種口味,然後切換回所需的口味,從而想到了這一點。
我的問題是在文件名中包含分鐘數 - 當生成的文件是appname_debug_0.9.0.1_170214_2217.apk時,它查找appname_debug_0.9.0.1_170214_2216.apk,以便輸出文件名代碼(從其他位置捕獲)顯然被調用從構建中的兩個不同點。
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)
}
}
修改文件:build.gradle(app directory)。其實:你不應該改變這個文件,只能通過這個來獲取同步提示,然後同步項目。
首先通過編輯配置刪除清理程序,它可能在構建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).
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'
}
}
年是2018年的Android Studio版本是3.2.0素α3,我們仍然得到這個問題。由於沒有爲我工作上面,這裏是我的2美分:
每一次發生這種情況我剛纔生成的命令行的APK:
gradlew assembleDebug
*我怎樣才能解決這個問題*編譯apk –
@TimCastelijns我真的不知道Android Studio是否不夠智能,無法將創建調試apk任務包含到deb應用程序任務中。應該爲此製作Gradle。 – Trilarion
@Trilarion默認情況下,AS執行編譯調試apk的gradle的assembleDebug任務。這裏看起來有些不對,這需要手動編譯 –