如何解决“无法确定应用程序ID: com.android.tools.idea.run.ApkProvisionException:无法确定变体的主要工件的输出”问题

274

我正在尝试运行所选的构建变体,但在运行选项卡中出现以下错误:

无法确定应用程序ID:com.android.tools.idea.run.ApkProvisionException:无法为变体的主要构件输出生成任何结果:madhyapradesh-debug

请您提供解决方案。


16
我不明白为什么每次更新Android Studio都这么痛苦。因此,我更喜欢尽可能地保留现有版本。 - Boogier
27个回答

354

首先,通过以下方式清理您的项目:


请注意,这是原文的直译,并保留了HTML标签。
Build -> Clean project

然后重新构建项目

Build -> Rebuild project

然后运行您的项目。 我希望这能起作用。

如果没有,请去

File -> Invalidate Caches / Restart -> Invalidate and restart

最后一个选项是,如果什么都没用的话,你可以再次同步 Gradle。


76
文件 > 无效缓存/重启... 有所帮助。 - CoolMind
16
这样的问题时不时地发生,令人感到悲哀。 - Sreekanth Karumanaghat
8
文件 -> 无效缓存 / 重启 -> 无效并重启。这个操作成功了。 - Naveed Ahmad
4
我之前做过这个,它确实有帮助,但这次没有。我必须进行Gradle同步。 - cslotty
1
文件->无效缓存/重启->在我检查Git中的非常旧的提交以进行测试时,无效和重启工作得很好。 - dotrinh PM
显示剩余2条评论

145

你的Gradle版本不同步。请前往:文件 -> 与Gradle文件同步项目。这应该能解决问题。

图片描述


9
按两次Shift键,搜索sync gradle然后按回车键,如果你懒得用鼠标或触控板移动光标,也能完成同样的操作。 - firemaples

83

这是因为项目build.gradle配置文件中的gradle版本太旧,无法与更高版本的Android Studio(例如Android Studio 3.6.1)兼容。

1. 您应该将gradle配置更改为更新版本,具体位置在: build.gradle(project)->buildscript->dependencies->classpath;

例如,您应该更改为:

classpath 'com.android.tools.build:gradle:2.3.1'

转化为:

classpath 'com.android.tools.build:gradle:3.1.2'

2.接下来,您可能还需要更改 gradle-wrapper.properties 中的配置为更新版本,例如更改:

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

转化为:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

3. 然后,在此之后,您可能还应该在以下位置添加google()

build.gradle(项目)->buildscript->repositories

build.gradle(项目)->allprojects->repositories


1
更新项目构建中的类路径对我有效。谢谢! - Bruce
1
更新了gradle版本后,我还必须通过“与Gradle文件同步项目”才能使其正常工作。谢谢!! - Eric
但是这不应该适用于所有项目吗?我发现这很奇怪,因为对于两个使用相同Gradle和构建工具插件的项目,其中一个可以正常工作,而另一个在过去两周内突然开始出现错误,之前它一直正常工作。 - Shadow Droid
他们谈论“gradle版本”和“插件版本”?distri-url->plugin和classpath->gradle吗?还是反过来?请参见链接:https://developer.android.com/studio/releases/gradle-plugin 我想知道最新的版本。 - Jomme

30

今天我遇到了这个问题。

在安装选项中不选择任何内容,然后点击添加图标按钮。选择“运行Gradle任务”。 这里输入图片描述

双击运行Gradle任务,会出现一个弹出选项,如图片所示。将第一个选项更改为“app”,第二个选项更改为“install debug”。

现在你已经解决了这个问题。

这里输入图片描述


7
你救了我的一天! - Gourango Sutradhar
在Windows上,运行选项卡->编辑配置,如上所述,然后滚动条上会出现加号标记。此外,提前在启动选项中选择了启动活动名称。 - CodeToLife
1
它起作用了。非常感谢。 - Bhargav Thanki
1
这应该是高票答案。 - Bipin Gawand
哇,它成功了!但是你能解释一下吗? - Ravikant sahu

27

在我将Android Studio更新到3.6.1版本后,我的Cordova项目出现了同样的问题。

作为解决方法(至少在应用程序首次安装时),我使用Gradle选项卡视图中的installDebug Gradle任务:Tasks -> Install。

进入图片描述


1
这解决了我在LibGdx游戏中遇到的问题。谢谢! - b3nk4n
我的电脑因为电力问题而断电,当时我正在开发一个安卓项目。之后我就一直遇到这个问题。你的回答解决了我的问题。谢谢! - Zaif Senpai

14

我通常使用以下操作:

文件 -> 无效缓存 / 重启

这个方法对我很有效 ^^


9

对我来说,解决方案似乎是更新Gradle插件...


1
to which version - Mahmoud Mabrok

9

解决方法1

创建一个新的运行配置,参数和默认的配置相同。对我来说有效。

  1. 运行
  2. 编辑配置
  3. 添加新配置(不是复制)-> Android应用程序
  4. 重命名
  5. 选择应用程序模块
  6. 应用

解决方法2

  1. Gradle Tab View -> Tasks -> Install中使用安装任务
  2. 运行 应用程序。

解决方法3

  1. 删除 .gradle 文件夹
  2. 无效缓存 / 重启...
  3. 运行 应用程序

1
解决方法1是通过删除应用程序运行配置并重新同步Gradle来解决的。 - Mohsen Mirhoseini
解决方法1有效,但请问一下背后的原因是什么?为什么它能够生效?之前为什么不行? - Tanmay Agarwal

7

今天我遇到了这个问题。

在安装选项中选择“默认APK”,然后单击添加图标按钮。选择“Gradle-aware Make” ->“OK” 输入图片描述


什么都不管用,但这个却有效。 - undefined

5

请按以下三个步骤操作:

  1. 清理项目: 点击Build菜单 >> Clean Project
  2. 同步项目: 点击File菜单 >> Sync Project with Gradle Files
  3. 重构项目: 点击Build菜单 >> Rebuild Project

现在运行您的应用程序并享受它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接