当前位置:  开发笔记 > 运维 > 正文

磁盘上不存在APK文件

如何解决《磁盘上不存在APK文件》经验,为你挑选了13个好方法。

当我在Android Studio上尝试调试应用程序时,会提供此日志输出:

磁盘上不存在APK文件/Users/MyApplicationName/app/build/outputs/apk/app-debug.apk.

我重新启动了Android Studio,但我无法解决这个问题.我该如何解决?谢谢



1> 小智..:

单击此选项可解决错误:

运行:查看>工具窗口> Gradle> [项目]>任务>构建>构建


这对我来说根本不起作用.我会建议解释为什么它们应该起作用的答案,而不仅仅是告诉读者该做什么,这样他们才能理解/避免/解决这些错误.
项目目录名中的特殊字符也会抛出此错误.
最新版本的Android Studio上不存在该按钮,但我相信它是"与Gradle文件同步项目"选项,它对我有用.
你能解释一下这究竟是做什么以及为什么会出现这个问题?

2> Seven..:

如果您在更新到Android Studio V 3.1后遇到此问题,请尝试以下操作.

当我更新到Android Studio 3.1时,我遇到了同样的问题.我在这里找到的所有其他解决方案都是非常手动的,因为每次都必须清理和重建,这一点都不好.但是感谢Iman Marashi在这里的答案,我能够解决它.

转到运行 - >编辑配置...

确保在"发布前"部分中有"Gradle-aware Make":

运行/调试配置

要添加它,请单击+号并选择Gradle-aware Make,然后会出现一个弹出窗口,只需将文本字段留空,然后单击OKOK.


这是最近的3.1更新的修复程序.对我来说,这个问题的第一个症状是APK没有"响应"代码中的更改.我现在很清楚,新的APK根本没有正确构建.
哇.希望我可以投票100次
这应该是公认的答案

3> Bartek..:

在我的例子中,执行"与Gradle文件同步项目"有帮助.重启Andoid Studio和清除缓存都没有做任何事情.


`文件 - >与Gradle文件同步项目`/sf/ask/17360801/

4> Jing Li..:

如果您只是想知道结论,请转到最后一节.谢谢.

通常在构建项目失败时,您可以尝试一些常见的技巧:

建立 - > 清洁项目

检查构建变体

重启 Android Studio(如您所述)

但是要更具体地解决您的问题 - 当Android Studio无法在磁盘上找到APK文件时.这意味着Android Studio实际上已经成功构建了项目,并且还生成了APK,但是,出于某种原因,Android Studio无法找到该文件.

在这种情况下,请根据日志检查打印目录.这很有帮助.

例如:

使用Android Studio 2.0 Preview(内部版本143.2443734).

    签出特定的提交(以便它与头部分离):git checkout [commit_hash]

    运行项目

    Android Studio告诉:磁盘上不存在APK文件/ Users/MyApplicationName/app/build/outputs/apk/app-debug-HEAD.apk

    转到目录,有一个实际命名的文件:app-debug-(HEAD.apk(附加一个括号))

    运行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);
        }
    }


我的问题是我在APK名称中添加了应用版本,但应用版本具有xyz格式和"." 命名中的(点)导致错误.所以记住没有其他点,但前面的那个:)

5> Rim Gazzah..:

确保您的路径中没有撇号&



6> Iman Marashi..:

确保有分级感知制作发射前运行/调试配置>> 部分:

喜欢这张图片



7> user213493..:

我通常在切换git分支时见证了类似的问题.对我来说,关闭Android Studio rm -rfv ~/Library/Caches/AndroidStudio*并重新启动Android Studio就是一张票.



8> live-love..:

在Android Studio 3.1.1中选择File | 使用Gradle文件同步项目.

在Android Studio 3中,选择"文件"| 同步.

然后再次运行您的项目.



9> Androiderson..:

今年是2018.Android Studio版本是3.2.0 alpha3,我们仍然遇到这个问题.由于以上都不适合我,这是我的2美分:

每次发生这种情况我只是从命令行生成apk:

gradlew assembleDebug

UPDATE

删除文件夹.AndroidStudio[version]并丢失所有首选项和缓存...似乎解决了问题



10> 小智..:

在我的情况下,我在我的应用程序文件路径中使用了一个特殊字符.我关闭了Android Studio并从我的应用文件路径中删除了'字符.当我重新开始这个项目时,一切都运转良好.



11> Mun0n..:

我已经使用顶部窗口中的Build选项和Build APK解决了构建apk的问题.不需要做一些奇怪的事情.



12> 小智..:

对于类Unix用户(Linux/MacOs X),而不是删除〜/ .gradle/caches /,在命令行中执行:

$ cd path_to_you_project
$ touch build.gradle

然后请求Android Studio构建APK,它将重置gradle缓存本身.



13> Lou Morda..:

我的问题是我将版本号附加到了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)
    }
}

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有