当我尝试在Android Studio上调试应用程序时,给出了以下日志输出:

APK文件 /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk没有 存在于磁盘上。

我重启了Android Studio,但是我无法解决这个问题。我怎么解决呢? 谢谢你!


如果你只想知道结论,请翻到最后一部分。谢谢。

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

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

当我切换git分支时,我经常看到类似的问题。对我来说,关闭AndroidStudio rm -rfv ~/Library/Caches/AndroidStudio*并重新启动AndroidStudio是门票。


在我的案例中,执行“用Gradle文件同步项目”有帮助。无论是重新启动android Studio还是清除缓存都不起任何作用。


我已经解决了使用顶部窗口和构建apk的构建选项构建apk。没必要做什么奇怪的事。


单击此选项可解决错误:


在gradle 1.5中也遇到了同样的问题

我必须清理构建文件:

Build ->清洁项目

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

Build -> Build APK

但我还是不知道为什么会这样。


如果你使用的是Linux,试着给app/build文件夹设置写权限。


我改变体型。gradle文件的一些信息,然后点击“现在同步”,就可以了。


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

参考答案@ Android Studio在运行.apk时得到错误的包名


对于Unix类用户(Linux/MacOs X),而不是删除~/。Gradle /caches/,在命令行执行:

$ cd path_to_you_project
$ touch build.gradle

然后要求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)
    }
}

File ->使缓存失效/重新启动


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

/用户/ MyApplicationName / app /构建/输出/ apk / app-debug.apk

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

这是我的问题,如果它不存在,你将需要运行“装配释放”任务在gradle下面的截图;

然后将生成文件夹。


我也有同样的问题。这是由于在路径上的虚名。路上有一个特殊的人物,是这样的: C: \ \ App \ Projekte-Tablet&Handy用户 我删除了“&”字符,效果很好。


在我的例子中,我在应用程序文件路径中使用了一个特殊字符。我关闭了Android Studio并从我的应用程序文件路径中删除了'字符。当我重新启动项目时,一切都很正常。


如果你尝试了以上所有的答案,它没有工作,尝试禁用“立即运行”功能。在所有尝试之后,这一个帮助了我。

文件->设置->构建,执行,部署->即时运行->取消选中复选框


确保在路径中没有撇号或&


我也得到了这个问题后,清理构建。对我来说,解决方案是我只是同步gradle,它为我工作。


以上都没有帮助我,但我通过在构建工具面板中切换到另一种风格,然后切换回所需的风格来解决这个问题。


我的问题是在文件名中包含分钟-它寻找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)
        }
    }

修改文件:build。gradle (app目录)。 其实:你不应该更改这个文件,只需要通过这个来获得同步技巧,然后同步项目。


这个按钮叫做“同步项目与Gradle文件”,它看起来像:…当更新版本号时,总是需要单击它,这将导致另一个APK文件名(除非文件名没有改变,安装包总是有效的,这提示,文件名正在被缓存)。等效的Gradle CLI选项似乎是——recompile-scripts。

见附录D. Gradle命令行。


首先通过编辑配置来删除cleaner,它可能在构建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).

确保在运行/调试配置>>启动前部分中有分级感知的Make:


使用Android Studio 2.2.1,我从顶部的下拉菜单中点击了“用Gradle文件同步项目”选项,Tools>Android

与上面的答案类似,请参见下面的屏幕截图,了解如何获得这个选项。


    1) This problem occure due to apk file .if your apk file
        (output/apk/debug.apk) not generated in this format . 

    2) you should use always in gradle file .

    buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }

现在是2018年。Android Studio版本是3.2.0 alpha3,我们仍然会遇到这个问题。由于以上这些方法对我都不起作用,下面是我的观点:

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

gradlew assembleDebug

更新

删除文件夹。androidstudio[版本]和丢失所有的首选项和缓存…似乎问题解决了


在Android Studio 3.1.1中选择文件|同步项目与Gradle文件。

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

然后再次运行您的项目。


如果你在更新到Android Studio V 3.1后遇到这个问题,那么试试下面的方法。

当我更新到Android Studio 3.1时,我也遇到了同样的问题。我在这里找到的所有其他解决方案都是手动的,因为你每次都必须清理和重建,这一点都不好。但是多亏了Iman Marashi的回答,我才得以解决这个问题。

执行->编辑配置…

确保你有一个Gradle-aware Make在Before launch部分:

要添加它,点击+号,然后选择Gradle-aware Make,一个弹出窗口就会出现,只需要让文本字段为空,然后点击OK和OK。


我让它工作:

关闭项目 从Android Studio欢迎窗口(或文件> New),单击导入项目。

我猜这迫使它重新安装APK,现在一切正常。


构建APK(s),并确保它工作


我通过做来解决这个应用

第一次构建- >构建Apk(s) 现在运行应用程序

如果它不工作做清洁和建立项目,然后再做1和2。


对我来说,问题是它无法找到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上。


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


这些方法我都试过了,但没有一个奏效。我最终不得不在同一时间内做一些这样的事情。花了这么多时间真是令人沮丧。

我遇到的问题与升级到AS 3.1后运行单元测试有关。

以下是我所做的… 1)。运行/编辑配置/选择测试.... 2)。为“Gradle-aware Make”添加选项 3)。选中Misc选项卡上的“如果ADK未更改,则跳过安装”复选框

祝你好运。


转到android studio>顶部栏的Build选项,创建“Build APK(s)”,一旦创建完成,打开可用的文件夹(app\ Build \outputs\ APK),然后关闭文件夹,这就是....然后尝试安装应用程序。


通过更新Android SDK-Build Tools解决了这个问题。


在我的案例中,问题是调试配置不知何故变得无效,即使测试方法名称、类或包没有改变。

我删除配置从运行->编辑配置,在这里:

Android studio会自动创建一个新的。


对我来说,只是

查看>工具Windows > Gradle >右键单击[项目]>刷新Gradle项目


同步,清洁,重建和无效缓存和重新启动

没有一个对我有用。

我已经删除了APK和output。Json文件在发布文件夹和调试文件夹,然后尝试同步,清理和构建,然后它工作良好。

或者简单地 删除包含apk和输出的文件夹。Json文件(用于调试/发布)


assemble[Variant]会在磁盘上为你生成APK,尽管不需要使用它来调试应用程序。

在工程项目根目录下执行如下命令:

$ ./gradlew clean build assemble[Variant]

GL