首页 文章

磁盘上不存在APK文件

提问于
浏览
187

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

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

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

30 回答

  • 0

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

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

    gradlew assembleDebug
    

    UPDATE

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

  • 2

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

  • 19

    我有同样的问题 . 这是由于路径中的假名 . 路径中有一个特殊字符,如下所示:C:\ User \ My App \ Projekte-Tablet&Handy我删除了“&”字符,效果很好 .

  • 0

    删除目录〜/ .gradle / caches / . 在Android Studio打开时可以这样做 . (请参阅pm安装错误的软件包名称)在Android Studio上按“与Gradle文件同步项目”图标运行项目,远程路径将正确 .

    请参阅答案@ Android Studio gets package name wrong when running .apk

  • 32

    上面没有任何东西对我有帮助,但我通过在Build Tools面板中切换到另一种风格然后切换回所需的风格来解决这个问题 .

  • 103

    首先通过编辑配置删除清理器,它可能是在构建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).
    
  • 2

    确保 Run/Debugging configurations >> before launch 部分中有 Grading-aware Make

    Like this image

  • 441

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

  • 17

    修改文件:build.gradle(app directory) . 实际上:您不应该更改此文件,只能通过此方式获取同步提示,然后同步项目 .

  • 2

    确保您的路径中没有 apostrophe&

  • 6

    使用新的Android Studio 3.1解决了2018年5月的问题 . 删除app文件夹中的.gradle,.idea和build目录 . 然后尝试再次运行它,你将看不到错误 .

  • 1

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

    $ cd path_to_you_project
    $ touch build.gradle
    

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

  • 1

    构建--->构建APK(s)并确保它有效

  • 15

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

    我将build.gradle文件更改为litle信息,然后单击“立即同步”,就行了 .

  • 1

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

  • 1

    单击此选项可解决错误:

    Run: View > Tool Windows > Gradle > project > Tasks > build > build

  • 9

    该按钮被称为"Sync Project with Gradle Files",它看起来很相似:
    Gradle Sync
    ...总是需要点击它,更新版本号,这导致另一个APK文件名(除非文件名没有改变,安装包总是有效,提示,文件名正在被缓存) . 等效的Gradle CLI选项似乎是 --recompile-scripts .

    @see Appendix D. Gradle Command Line .

  • 0

    如果您尝试了以上所有答案并且无效,请尝试禁用“即时运行”功能 . 所有的尝试都帮助了我 .

    File -> Settings -> Build, Execution, Deployment -> Instant Run -> Uncheck checkbox there

  • 0

    我的问题是,不知何故,它真的找不到apk,而apk存在 .

    The APK file /Users/Paul/AndroidStudioProjects/android-tv-launcher/ui/build/outputs/apk/nameofapk.apk does not exist on disk.
    Error while Installing APK
    

    我所要做的就是右键单击apk-copy相对路径,然后就可以了

    adb install -r <paste of relative path>
    

    而apk已经安装好了 . 这个问题在我的OSX上发生了 .

  • 0

    清理完构建后,我也遇到了这个问题 . 对我来说,解决方案是我只是同步gradle,它对我有用 .

  • 0

    文件 - >使高速缓存/重新启动无效

  • 2

    我的问题是在文件名中包含分钟 - 当生成的文件是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)
            }
        }
    
  • 0

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

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

    • Build - > Clean Project

    • 检查 Build Variants

    • Restart Android Studio(如您所述)

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

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

    例如:

    随着AndroidStudio 2.0预览版(内部版本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分离)

    所以在这里你可以看到, due to my gradle build script's mistake ,文件命名在某种程度上是错误的 .

    上面的示例只是一个可能导致相同问题的情况,但不一定与您的根本原因相同 .

    因此,我强烈建议您 check the directory (找到差异),并检查您的 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);
            }
        }
    
  • 53

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

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

    转到 Run -> Edit Configurations...

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

    Run/Debug Configurations

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

  • 0

    如果您使用的是Linux,请尝试为app / build文件夹设置写入权限 .

  • 1

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

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

    然后再次运行您的项目 .

  • 10

    使用gradle 1.5面临同样的问题

    我不得不清理构建文件:

    构建 - >清理项目

    并构建一个APK以强制gradle文件的完整编译和同步:

    构建 - >构建APK

    我仍然不知道为什么或如何发生 .

  • 6

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

  • 4

    确保在您的日志中生成的路径中 - 在您的情况下:

    /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk

    文件夹“outputs”确实有一个“apk”文件夹 .

    这是我的问题,如果它不存在,你需要按照下面的截图在gradle中运行“assembleRelease”任务;

    Steps to run the gradle assembleRelease task
    然后将生成该文件夹 .

相关问题