当我尝试在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,但是我无法解决这个问题。我怎么解决呢? 谢谢你!
当前回答
我的问题是在文件名中包含分钟-它寻找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)
}
}
其他回答
现在是2018年。Android Studio版本是3.2.0 alpha3,我们仍然会遇到这个问题。由于以上这些方法对我都不起作用,下面是我的观点:
每次发生这种情况时,我只是从命令行生成apk:
gradlew assembleDebug
更新
删除文件夹。androidstudio[版本]和丢失所有的首选项和缓存…似乎问题解决了
这些方法我都试过了,但没有一个奏效。我最终不得不在同一时间内做一些这样的事情。花了这么多时间真是令人沮丧。
我遇到的问题与升级到AS 3.1后运行单元测试有关。
以下是我所做的… 1)。运行/编辑配置/选择测试.... 2)。为“Gradle-aware Make”添加选项 3)。选中Misc选项卡上的“如果ADK未更改,则跳过安装”复选框
祝你好运。
File ->使缓存失效/重新启动
在gradle 1.5中也遇到了同样的问题
我必须清理构建文件:
Build ->清洁项目
并构建一个APK来强制gradle文件的完整编译和同步:
Build -> Build APK
但我还是不知道为什么会这样。
如果你只想知道结论,请翻到最后一部分。谢谢。
通常当构建项目失败时,你可以尝试一些常见的技巧:
Build ->清洁项目 检查构建变量 重启Android Studio(如你所述)
但更具体地说,你的问题-当Android Studio无法在磁盘上找到APK文件。这意味着Android Studio实际上已经成功地构建了项目,并生成了APK,但是,由于某种原因,Android Studio无法找到该文件。
在这种情况下,请根据日志检查打印的目录。它是有帮助的。
例如:
Android Studio 2.0预览版(build 143.2443734)。
签出到一个特定的提交(这样它就从head中分离出来了):git Checkout [commit_hash] 运行项目 Android Studio提示:APK文件/Users/MyApplicationName/app/build/outputs/ APK /app-debug- head . APK在磁盘上不存在 打开目录,有一个文件的名字是:app-debug-(HEAD.apk(有一个额外的圆括号) 运行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);
}
}