Android Studio 3.1“运行”未编译代码


87

当我尝试安装应用程序时,有两种可能性:

  1. 当我运行 app
  2. 执行后安装APK clean build

对于build文件夹中的现有APK,该应用程序可以正常运行。但是,当我使用Build->清理项目Clean Project,然后尝试运行app(即将应用程序安装到我的仿真器或物理设备上)时,它向我显示错误:

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

注意:仅当我清理项目时才会发生此行为,而在构建文件夹中已经有预构建的应用APK时则不会发生

我已经提到:APK文件在磁盘上不存在,但我的意思是,当我们通常在清理项目后运行应用程序时,如果build文件夹中不存在APK,则无需构建它。 ,它会自动生成并安装最新的。

我尝试过的事情:

  1. 当构建文件夹中存在APK文件时运行应用程序(工作正常)
  2. 运行Clean Project->运行应用程序(预计将构建项目并安装该应用程序,但显示上述错误!)
  3. 完成后清理和运行应用程序的过程相同 Invalidate Caches/Restart

3
Build -> Clean Project->Rebuild Project
IntelliJ Amiya

@IntelliJAmiya与您所说的完全一样,但是这里的意思是,当我重建项目时,它肯定可以工作,但是如果我运行该应用程序,它不应该以相同的方式生成APK吗?
斯内潘迪亚

检查此链接以获取答案:stackoverflow.com/a/49508278/3806413
0xAliHn

Answers:


151

我有解决您问题的方法。希望能帮助到你!

也由Android StudioTwitter上确认:https : //twitter.com/androidstudio/status/981914632892960768

1)请如下编辑您的应用程序配置。

在此处输入图片说明

2)在这里,您可以看到以下应用程序配置。

在此处输入图片说明

3)在启动配置之前,这里缺少Gradle-aware的make属性。你可以在这里看到。

在此处输入图片说明

4)请通过这种方式添加此Gradle-aware Make属性。单击+图标,然后选择Gradle-aware Make,如该屏幕所示。

在此处输入图片说明

5)您可以添加它而无需编写任何任务,只需按OK按钮,任务将被添加,现在看起来应该像这样。现在应用更改并运行您的应用程序。

在此处输入图片说明

希望它将在新的android studio 3.1问题中的干净版本上解决这个旧的apk安装问题。

注意:新的Android Studio 3.1.1稳定版中已解决此问题。

快乐编码!


1
看来,如果您更改代码并运行该应用程序,那并不是在构建仅运行旧代码的应用程序。这个解决方案对我有用。
Vicky

不起作用:关机在0ms内完成生成依赖项时出错拆分APK com.android.ide.common.process.ProcessException:无法在com.com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:809)执行aapt .android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:797)位于com.android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp(
InstantRunSplitApkBuilder.java:373

@ android51130为我工作。您能否检查项目的其他gradle的配置。我认为那将是问题。
Sagar Kacha

@ android51130是的,确实如此。目前在我的配置中,即时运行已关闭。所以这个解决方案对我有用。
Sagar Kacha

1
我长期在最新的AS 4.2 Canary版本中遇到此问题。这解决了这个问题,谢谢。
muthuraj

3

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

可能是错误。您应该更改设置。

您应该打开Run/Debug Configurations dialog&选择Run > Edit Configurations

确保是否Gradle-aware Make在TaskList中添加了。如果没有,请单击+并从选项中选择。

在此处输入图片说明

注意

如果收到

关机在0ms内完成生成依赖项拆分时出错。 com.android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp(InstantRunSplitApkBuilder.java:373)上的builder.core.AndroidBuilder.processResources(AndroidBuilder.java:797)

您应该取消选中INSTANT RUN

文件-设置-构建,执行,部署-即时运行,然后 取消选中启用即时运行


1
是的,它将在重建中工作,因为已经通过即时运行设置了配置。但不能在干净的构建和运行项目组合中使用。
Sagar Kacha

1
@SaguKacha确实。
IntelliJ Amiya

不起作用:关机在0ms内完成生成依赖项时出错拆分APK com.android.ide.common.process.ProcessException:无法在com.com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:809)执行aapt .android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:797)位于com.android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp(
InstantRunSplitApkBuilder.java:373

@ android51130你是什么buildToolsVersion ??
IntelliJ Amiya

@IntelliJAmiya 26.0.2
android51130 '18

2

清理项目并再次运行

如果不行的话

  • 步骤1关闭您的项目。
  • 步骤2转到项目文件夹,然后删除所有构建文件夹。
  • 步骤3运行您的项目。

1
还尝试关闭项目,关闭Android Studio并执行无效的缓存/重新启动,但没有运气,清理应用程序后,它始终显示错误,而且奇怪的是,如果构建了项目,则它始终运行与构建文件夹中相同的APK,而没有进行任何更改进行更新。
斯内潘迪亚

您是否尝试过第2步?转到项目文件夹,并删除所有带有模块构建文件夹的构建文件夹。
维沙尔·索吉特拉

是的,我也确实删除了构建文件夹,没有任何效果!
斯内潘迪亚

希望斯坦能跑,并尽一切努力。
维沙尔·索吉特拉

你有解决办法吗?
维沙尔·索吉特拉

0

此问题已在Android Studio 3.1.1(2018年4月)版本中修复。将您的android studio更新到3.1.1。

这里有解释问题等级,原因和解决方案的说明:

在某些情况下,当在Android Studio 3.0 was opened for the first time in Android Studio 3.1, the Gradle-aware Make task was removed from the Before launch area in Run/Debug Configurations.“结果”中创建的项目是单击“运行”或“调试”按钮时,项目没有建立,这进而导致失败,例如部署不正确的APK以及使用Instant Run时崩溃。

为了解决此问题,Android Studio 3.1.1 adds the Gradle-aware Make task to the run configuration for projects that are missing this entry.在加载项目时,在第一次Gradle同步之后进行此修改。

官方发行说明:https : //developer.android.com/studio/releases/index.html#3-1-0

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.