sor*_*dam 220 android apk android-studio
当我在Android Studio上尝试调试应用程序时,会提供此日志输出:
磁盘上不存在APK文件/Users/MyApplicationName/app/build/outputs/apk/app-debug.apk.
我重新启动了Android Studio,但我无法解决这个问题.我该如何解决?谢谢
小智 460
单击此选项可解决错误:
![运行:查看>工具窗口> Gradle> [项目]>任务>构建>构建](https://i.stack.imgur.com/2KSyU.png)
Sev*_*ven 207
当我更新到Android Studio 3.1时,我遇到了同样的问题.我在这里找到的所有其他解决方案都是非常手动的,因为每次都必须清理和重建,这一点都不好.但是感谢Iman Marashi在这里的答案,我能够解决它.
转到运行 - >编辑配置...
确保在"发布前"部分中有"Gradle-aware Make":
要添加它,请单击+号并选择Gradle-aware Make,然后会出现一个弹出窗口,只需将文本字段留空,然后单击OK和OK.
Bar*_*tek 65
在我的例子中,执行"与Gradle文件同步项目"有帮助.重启Andoid Studio和清除缓存都没有做任何事情.
Jin*_* Li 34
如果您只是想知道结论,请转到最后一节.谢谢.
通常在构建项目失败时,您可以尝试一些常见的技巧:
但是要更具体地解决您的问题 - 当Android Studio无法在磁盘上找到APK文件时.这意味着Android Studio实际上已经成功构建了项目,并且还生成了APK,但是,出于某种原因,Android Studio无法找到该文件.
在这种情况下,请根据日志检查打印目录.这很有帮助.
例如:
使用Android Studio 2.0 Preview(内部版本143.2443734).
运行git branch
*(HEAD在1a2bfff分离)
所以在这里你可以看到,由于我的gradle构建脚本的错误,文件命名在某种程度上是错误的.
上面的示例只是一个可能导致相同问题的情况,但不一定与您的根本原因相同.
因此,我强烈建议您检查目录(以找到差异),并检查您的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);
}
}
Run Code Online (Sandbox Code Playgroud)
use*_*493 17
我通常在切换git分支时见证了类似的问题.对我来说,关闭Android Studio rm -rfv ~/Library/Caches/AndroidStudio*并重新启动Android Studio就是一张票.
liv*_*ove 13
在Android Studio 3.1.1中选择File | 使用Gradle文件同步项目.
在Android Studio 3中,选择"文件"| 同步.
然后再次运行您的项目.
And*_*son 11
今年是2018.Android Studio版本是3.2.0 alpha3,我们仍然遇到这个问题.由于以上都不适合我,这是我的2美分:
每次发生这种情况我只是从命令行生成apk:
gradlew assembleDebug
Run Code Online (Sandbox Code Playgroud)
UPDATE
删除文件夹.AndroidStudio[version]并丢失所有首选项和缓存...似乎解决了问题
小智 6
对于类Unix用户(Linux/MacOs X),而不是删除〜/ .gradle/caches /,在命令行中执行:
$ cd path_to_you_project
$ touch build.gradle
Run Code Online (Sandbox Code Playgroud)
然后请求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)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106514 次 |
| 最近记录: |