当我尝试在Android Studio上调试应用程序时,给出了以下日志输出:
APK文件 /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk没有 存在于磁盘上。
我重启了Android Studio,但是我无法解决这个问题。我怎么解决呢? 谢谢你!
当我尝试在Android Studio上调试应用程序时,给出了以下日志输出:
APK文件 /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk没有 存在于磁盘上。
我重启了Android Studio,但是我无法解决这个问题。我怎么解决呢? 谢谢你!
当前回答
如果你在更新到Android Studio V 3.1后遇到这个问题,那么试试下面的方法。
当我更新到Android Studio 3.1时,我也遇到了同样的问题。我在这里找到的所有其他解决方案都是手动的,因为你每次都必须清理和重建,这一点都不好。但是多亏了Iman Marashi的回答,我才得以解决这个问题。
执行->编辑配置…
确保你有一个Gradle-aware Make在Before launch部分:
要添加它,点击+号,然后选择Gradle-aware Make,一个弹出窗口就会出现,只需要让文本字段为空,然后点击OK和OK。
其他回答
以上都没有帮助我,但我通过在构建工具面板中切换到另一种风格,然后切换回所需的风格来解决这个问题。
如果你尝试了以上所有的答案,它没有工作,尝试禁用“立即运行”功能。在所有尝试之后,这一个帮助了我。
文件->设置->构建,执行,部署->即时运行->取消选中复选框
我的问题是在文件名中包含分钟-它寻找appname_debug_0.9.0.1 1_170214_2216.apk,而生成的文件是appname_debug_0.9.0.1 1_170214_2217.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)
}
}
我的问题是我将版本号附加到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)
}
}
在我的案例中,问题是调试配置不知何故变得无效,即使测试方法名称、类或包没有改变。
我删除配置从运行->编辑配置,在这里:
Android studio会自动创建一个新的。