当我在Android Studio上尝试调试应用程序时,会提供此日志输出:
APK文件 /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk没有 存在于磁盘上。
我重启了Android Studio,但我无法解决这个问题。我该如何解决? 谢谢
答案 0 :(得分:458)
单击此选项可解决错误:
答案 1 :(得分:200)
当我更新到Android Studio 3.1时,我遇到了同样的问题。我在这里找到的所有其他解决方案都是非常手动的,因为每次都必须清理和重建,这一点都不好。但是感谢Iman Marashi的答案,我能够解决它。
转到运行 - >编辑配置......
确保您拥有" Gradle-aware Make"在发布之前部分:
要添加它,请点击 + 符号并选择 Gradle-aware Make ,然后会出现一个弹出窗口,只需将文本字段留空,然后点击确定和确定。
答案 2 :(得分:62)
就我而言,执行"使用Gradle文件同步项目"帮助。无论是重新启动Andoid Studio还是清除缓存都没有做任何事情。
答案 3 :(得分:33)
如果您只是想知道结论,请转到最后一节。感谢。
通常在构建项目失败时,您可以尝试一些常见的技巧:
但是要更具体地解决您的问题 - 当Android Studio无法在磁盘上找到APK文件时。这意味着Android Studio实际上已经成功构建了项目,并且还生成了APK,但是,出于某种原因,Android Studio无法找到该文件。
在这种情况下,请根据日志检查打印目录。它很有帮助。
例如:
使用Android Studio 2.0预览版(内部版本143.2443734)。
运行 git branch
*(HEAD在1a2bfff分离)
所以在这里你可以看到,由于我的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)
答案 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)
答案 17 :(得分:2)
清理构建后,我也遇到了这个问题。对我而言,解决方案是我只是同步gradle并且它对我有用。
答案 18 :(得分:2)
档案 - &gt;使高速缓存/重新启动无效
答案 19 :(得分:1)
答案 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&amp; 2。
答案 28 :(得分:0)
就我而言
查看>工具窗口> Gradle>右键单击[项目]>刷新Gradle项目
答案 29 :(得分:0)
assemble[Variant]
会在磁盘上为您生成APK,尽管不必使用它来调试应用。
在项目的根目录中运行以下命令:
$ ./gradlew clean build assemble[Variant]
GL
答案 30 :(得分:0)
我得到了它的工作:
我想这迫使它重新安装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
类似地,对于上面发布的答案,请参阅下面的屏幕截图,了解如何获得此选项。
答案 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;它看起来很相似: ...总是需要点击它,当更新版本号时,这导致另一个APK文件名(除非文件名没有改变,安装包总是有效,提示,文件名正在被缓存)。等效的Gradle CLI选项似乎是
--recompile-scripts
。
答案 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任务;
答案 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文件夹设置写入权限。