Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 磁盘上不存在APK文件_Android_Android Studio_Apk - Fatal编程技术网

Android 磁盘上不存在APK文件

Android 磁盘上不存在APK文件,android,android-studio,apk,Android,Android Studio,Apk,当我在Android Studio上尝试调试应用程序时,会给出以下日志输出: APK文件 /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk不支持 存在于磁盘上 我重新启动了Android Studio,但我无法解决这个问题。我怎样才能解决它? 谢谢如果你只想知道结论,请转到最后一节。谢谢 通常,当构建项目失败时,您可以尝试一些常见技巧: 构建->清洁项目 检查构建变体 重新启动Android Studio(如您所述) 但

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

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

我重新启动了Android Studio,但我无法解决这个问题。我怎样才能解决它?
谢谢

如果你只想知道结论,请转到最后一节。谢谢

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

  • 构建->清洁项目
  • 检查构建变体
  • 重新启动Android Studio(如您所述)
但更具体地说,当Android Studio在磁盘上找不到APK文件时。这意味着Android Studio实际上已经成功地构建了该项目,并生成了APK,但由于某种原因,Android Studio无法找到该文件

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

例如:

使用Android Studio 2.0预览版(构建143.2443734)

  • 签出到特定的提交(以便它与头部分离):git签出[commit\u hash]
  • 运行项目
  • Android Studio告诉我们:APK文件/Users/MyApplicationName/app/build/outputs/APK/app debug HEAD.APK在磁盘上不存在
  • 转到目录,有一个文件实际名为:app debug-(HEAD.apk(带一个额外的括号)
  • 运行git分支机构

    *(头部在1a2bfff处分离)

  • 所以在这里您可以看到,由于我的gradle构建脚本的错误,,文件命名在某种程度上是错误的

    上面的例子只是一个可能导致相同问题的场景,但不一定是与您的问题相同的根本原因

    因此,我强烈建议您检查目录(查找差异),并检查build.gradle脚本(您可以在此处更改apk名称,如下所示):


    我经常在切换git分支时看到类似的问题。对我来说,关闭Android Studio
    rm-rfv~/Library/Caches/AndroidStudio*
    ,重启Android Studio就是问题所在。

    在我的例子中,执行“与Gradle文件同步项目”帮助。重新启动Andoid Studio或清除缓存都没有任何作用。

    我已经解决了使用顶部窗口中的“生成”选项生成apk并生成apk的问题。无需执行奇怪的操作。

    单击此选项以解决错误:


    工具窗口>Gradle>[project]>任务>构建>构建“>

    在Gradle 1.5中面临同样的问题

    我必须清理构建文件:

    构建->清洁项目

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

    构建->构建APK


    我仍然不知道这是为什么或者是如何发生的。

    如果你在使用Linux,请尝试设置对app/build文件夹的写入权限。

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

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

    对于类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)
        }
    }
    

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

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

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

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

    这是我的问题,如果它不在那里,您需要按照下面的屏幕截图在gradle中运行“assembleRelease”任务


    然后将生成文件夹。

    我遇到了相同的问题。这是由于路径中的名称错误。路径中有一个特殊字符,如下所示: C:\User\My App\Projekte平板电脑和Handy
    我删除了“&”字符,效果很好。

    在我的例子中,我在我的应用程序文件路径中使用了一个特殊字符。我关闭了Android Studio,并从我的应用程序文件路径中删除了“&”字符。

    当我重新启动项目时,一切正常。

    如果你尝试了上述所有答案,但没有成功,请尝试禁用”“即时跑步”功能。这一功能在我尝试了很多次之后都帮了我的忙


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

    确保路径中没有撇号&

    在清理构建之后,我也遇到了这个问题。对我来说,解决方案就是同步渐变,它对我有效。

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

    我的问题是在文件名中包含分钟数-当生成的文件是appname_debug_0.9.0.1_170214;_2216.apk时,它查找appname_debug_0.9.0.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(应用程序目录)。
    事实上:您不应该更改此文件,只需通过此操作获取同步提示,然后同步项目。

    在启动之前,请确保运行/调试配置>>中有分级意识,并确保中有设置


    今年是2018年。Android Studio版本是3.2.0 alpha3,我们仍然遇到这个问题。由于以上所有内容对我都不起作用,这是我的2美分:

    每次发生这种情况时,我只是从comm生成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)
            }
        }
    
    gradlew assembleDebug
    
    The APK file /Users/Paul/AndroidStudioProjects/android-tv-launcher/ui/build/outputs/apk/nameofapk.apk does not exist on disk.
    Error while Installing APK
    
    adb install -r <paste of relative path>