当我尝试在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)
        }
    }

其他回答

单击此选项可解决错误:

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

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

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

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

然后将生成文件夹。

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

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

$ ./gradlew clean build assemble[Variant]

GL

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

我必须清理构建文件:

Build ->清洁项目

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

Build -> Build APK

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

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

见附录D. Gradle命令行。