磁盘

时间:2015-12-02 10:02:28

标签: android android-studio apk

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

  

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

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

41 个答案:

答案 0 :(得分:458)

单击此选项可解决错误:

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

答案 1 :(得分:200)

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

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

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

确保您拥有" Gradle-aware Make"在发布之前部分:

Run/Debug Configurations

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

答案 2 :(得分:62)

就我而言,执行"使用Gradle文件同步项目"帮助。无论是重新启动Andoid Studio还是清除缓存都没有做任何事情。

答案 3 :(得分:33)

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

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

  • 构建 - > 清洁项目
  • 检查构建变体
  • 重新启动 Android Studio(如您所述)

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

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

例如:

使用Android Studio 2.0预览版(内部版本143.2443734)。

  1. 结帐到特定提交(以便它与头部分离): git checkout [commit_hash]
  2. 运行项目
  3. Android Studio告诉:磁盘上不存在APK文件/ Users / MyApplicationName / app / build / outputs / apk / app-debug-HEAD.apk
  4. 转到目录,有一个实际命名的文件: app-debug-(HEAD.apk (带有一个额外的括号)
  5. 运行 git branch

    *(HEAD在1a2bfff分离)

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

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

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

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerInside"
        android:id="@+id/do2get"
        android:src="@drawable/loading"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="30dp" />
    
    <ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:indeterminateTint="#00796b"
        android:id="@+id/progressBar"
        android:layout_below="@+id/do2get"
        android:layout_centerHorizontal="true"
        android:indeterminateTintMode="src_in"/>
    </RelativeLayout>
    

答案 4 :(得分:20)

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

答案 5 :(得分:19)

确保运行/调试配置&gt;&gt;中有评分意识制作。发布前部分:

Like this image

答案 6 :(得分:17)

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

答案 7 :(得分:13)

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

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

然后再次运行您的项目。

答案 8 :(得分:11)

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

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

gradlew assembleDebug

更新

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

答案 9 :(得分:7)

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

答案 10 :(得分:6)

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

答案 11 :(得分:6)

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

$ cd path_to_you_project
$ touch build.gradle

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

答案 12 :(得分:5)

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

答案 13 :(得分:3)

  

构建---&gt;构建APK(确保无效)

答案 14 :(得分:3)

同步,清除,重建和使缓存无效并重新启动

他们都不为我工作。

我已经删除了release文件夹和debug文件夹中的APK和output.json文件,然后尝试同步,清理和构建,然后工作正常。

或者简单地 删除包含apk和output.json文件的文件夹(如果是调试/发布版本)

答案 15 :(得分:2)

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

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

答案 16 :(得分:2)

在我的情况下,问题是调试配置变得无效,即使测试方法名称,类或包没有更改。

我从“运行”->“编辑配置”中删除了配置,位于此处:

enter image description here

Android Studio将自动创建一个新的。

答案 17 :(得分:2)

清理构建后,我也遇到了这个问题。对我而言,解决方案是我只是同步gradle并且它对我有用。

答案 18 :(得分:2)

档案 - &gt;使高速缓存/重新启动无效

答案 19 :(得分:1)

我有同样的问题。这是由于路径中的假名。路径中有一个特殊字符,如下所示: C:\ User \ My App \ Projekte-Tablet&amp; Handy 我删除了&#34;&amp;&#34;性格和它运作良好。

答案 20 :(得分:1)

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

答案 21 :(得分:1)

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

答案 22 :(得分:1)

对我来说问题是,不知何故,它确实找不到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上。

答案 23 :(得分:1)

使用gradle 1.5面对同样的问题

我必须清理构建文件:

  

构建 - &gt;清洁项目

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

  

构建 - &gt;建立APK

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

答案 24 :(得分:0)

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

答案 25 :(得分:0)

转到android studio顶部栏上的“构建”选项>创建“构建APK”,一旦创建了构建,请打开其可用的文件夹(app \ build \ outputs \ apk),然后关闭该文件夹,仅此而已....然后尝试安装该应用程序。

答案 26 :(得分:0)

我尝试了所有这些东西,但都没有奏效。我最终不得不做同样的事情。非常令人沮丧的是,花了这么多时间。

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

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

祝你好运。

答案 27 :(得分:0)

我通过

解决了这个应用程序
  1. First Build - &gt;建立Apk(s)
  2. 立即运行应用
  3. 如果不起作用请清理并构建项目然后再做1&amp; 2。

答案 28 :(得分:0)

就我而言

  

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

答案 29 :(得分:0)

assemble[Variant]会在磁盘上为您生成APK,尽管不必使用它来调试应用。

在项目的根目录中运行以下命令:

$ ./gradlew clean build assemble[Variant]

GL

答案 30 :(得分:0)

我得到了它的工作:

  1. 关闭项目
  2. 从Android Studio欢迎窗口(或文件&gt;新建),单击导入项目。
  3. 我想这迫使它重新安装APK,现在一切正常。

答案 31 :(得分:0)

    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'
            }
        }

答案 32 :(得分:0)

使用Android Studio 2.2.1,我点击了顶部下拉列表中的同步项目和Gradle文件选项,工具&gt; Android

类似地,对于上面发布的答案,请参阅下面的屏幕截图,了解如何获得此选项。

enter image description here

答案 33 :(得分:0)

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

答案 34 :(得分:0)

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

@see Appendix D. Gradle Command Line

答案 35 :(得分:0)

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

答案 36 :(得分:0)

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

答案 37 :(得分:0)

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

  

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

文件夹&#34;输出&#34;确实有一个&#34; apk&#34;文件夹中。

这是我的问题,如果不存在,你将需要运行&#34; assembleRelease&#34;按照以下截图进行gradle任务;

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

答案 38 :(得分:0)

删除目录〜/ .gradle / caches /。在Android Studio打开时可以执行此操作。 (请参阅pm安装错误的包名) 按&#34;使用Gradle文件同步项目&#34; Android Studio上的图标 运行项目,远程路径将是正确的。

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

答案 39 :(得分:0)

我将build.gradle文件更改为litle信息,然后单击&#34;立即同步&#34;,好的。

答案 40 :(得分:0)

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

相关问题