Android-studio 3.4.0-3.4.1 Gradle错误:未为属性“ manifestOutputDirectory”指定值

时间:2019-05-08 04:25:37

标签: android android-studio android-gradle gradle-plugin

当升级到android-studio 3.4 / gradle构建插件3.4 / gradle 5.3时...想知道它是否与android插件有关。

ERROR: No value has been specified for property 'manifestOutputDirectory'.

我的gradle脚本不使用清单相关变量,也没有更改清单。我升级之前的版本是Android-Studio:3.3 / Gradle原始版本:3.3.2 / Gradle:5.3


首次更新(20190508):修复方法(临时)

找到一种临时修复方法,但是纠正错误的方法仍然未知。 避免方法: 我是Mac OS X系统:单击Android Studio->性能...->实验性 取消选中:仅同步活动版本。

我研究了文档。此功能可以提高编译速度。如果找到修复方法,我仍要继续检查“仅同步活动的变体”。


第二次更新(20190518):

浏览一些文档没有找到解决方法。

但可能会发现一些重复出现的情况供您参考。

此问题的过程是主动启动Gradle的项目同步操作。例如,单击该图将出现两个位置。如果有问题,则需要取消选中“仅同步活动的变体”。 enter image description here

但是,在成功编译和安装后,选中“仅同步活动的变体。”,即使更改了build.gradle文件,也不需要再次同步最前面的通知,因此不会再次出现此问题。单击“立即同步”,直接使用运行“应用程序”或调试“应用程序”,Android-studio将自动执行同步,然后编译并运行,并且不会再次发生此问题。 enter image description here

起初,我认为更改build.gradle的代码可以纠正此问题。现在,我觉得Android-studio或gradle-plugin在执行项目同步时遇到一些问题。我希望后续版本可以解决此问题。

12 个答案:

答案 0 :(得分:6)

点击Android Studio->性能->实验性,然后您必须取消选中-仅同步活动的变体。

Uncheck the option is checked

答案 1 :(得分:5)

在干净的PC安装中,我尝试了所有技巧,但没有任何效果。我注意到有记录的消息,不接受许可证。我打开SDK管理器,下载了一些软件包,提示我接受许可,并且开始同步。

答案 2 :(得分:5)

与@ user3407078答案相同。

就我而言。这是由于 Android Studio 3.5 更新导致的,而我尚未安装或接受 构建工具和SDK平台29 的许可和协议

Checking the license for package Android SDK Build-Tools 29.0.2 in ~/Library/Android/sdk/licenses
Warning: License for package Android SDK Build-Tools 29.0.2 not accepted.
Checking the license for package Android SDK Platform 29 in ~/Library/Android/sdk/licenses
Warning: License for package Android SDK Platform 29 not accepted.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> No value has been specified for this provider.

建议更新最新的SDK工具和平台,在这种情况下,版本为 29 。即使我们只开发较低版本,也必须在您的Android Studio上进行操作。

已编辑

  1. 在极少数情况下,您可能还想禁用Gradle功能here thx @ waqas-khalid-obeidy
  2. 或者,如果您使用的是gradlew命令行任务,请浏览here以获取完整说明。 thx @ amir-ziarati

答案 3 :(得分:3)

我刚刚升级到AS 3.4,并遇到了同样的问题。冷启动应用程序时会发生这种情况。 Build > Make Project可以正常工作,从命令行构建也可以。

答案 4 :(得分:1)

禁用Gradle功能“仅同步活动的变体”对我有用。

In Android Studio: File > Settings > Experimental > Gradle -> uncheck "Only sync the active variant" checkbox.

答案 5 :(得分:0)

就我而言,问题是我选择了增量选项

解决问题

打开gradle.properties文件并删除行

kapt.incremental.apt=true   //remove or comment this line

答案 6 :(得分:0)

可能缺少Java JDK,可能想检查tha

答案 7 :(得分:0)

在我的情况下,这是因为某些sdk许可证未被接受。当我通过命令行运行gradlew时,我就知道了。下面的链接向您展示了如何通过sdkManager工具接受所有许可证。

You have not accepted the license agreements of the following SDK components

答案 8 :(得分:0)

这是我买新笔记本电脑并重新安装Android Studio时发生的事情。

我通过安装项目所针对的适当Android SDK版本解决了此问题。全新安装Android Studio时,新机器上仅安装了API 29,但是我的项目针对的是API 28。

打开SDK管理器,并为您的应用下载正确的Android SDK,此错误应自行解决。

答案 9 :(得分:0)

就我而言,我还没有安装 compileSdkVersion 支持的 SDK。

例如:如果您提到了 compileSdkVersion 28。请确保它已安装在您的 SDK 管理器中。如果您还没有安装,请安装它。

答案 10 :(得分:0)

在浪费了我一整天之后,我得到了这个问题的解决方案。

  1. 前往 android studio 中的 SDK 管理器
  2. 安装一些 SDK 包
  3. 重建项目

已解决!

答案 11 :(得分:-2)

通过“以Amdinistrator身份运行”启动Android Studio