Android-studio 3.4.0-3.4.2 Gradle错误:未为属性'manifestOutputDirectory'指定任何值。

42

当升级到android-studio 3.4.x/gradle build插件3.4.x/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->偏好设置...->实验性功能 取消勾选:Only sync the active variant。

我已经研究了文档。此功能可以提高编译速度。如果我找到纠正该问题的方法,我仍然想继续检查“仅同步活动变体”。


第二次更新(20190518):

查阅一些文档没有找到解决方案。

但可能会发现一些经常出现的条件供您参考。

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

但是,在成功编译和安装后,选中“仅同步活动变体”,这个问题就不会再次出现,即使您更改了build.gradle文件,也不会出现需要重新同步的顶部通知,不要单击“现在同步”,直接使用run 'app'或debug 'app',Android-studio将自动执行同步,然后进行编译和运行,这个问题将不再出现。 enter image description here

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


第三次更新(20190821):

Android-studio 3.5.0 / gradle构建插件3.5.0 / gradle 5.4.1

目前最新的稳定版本已经解决了这个问题。

启用“仅同步活动变体”是可以的。


1
这个错误在我的Android Studio 3.6 Beta 3上发生。已经尝试了这里提到的所有方法,但都没有成功。非常感谢任何帮助。 - paul_f
12个回答

51

Mac OS - 点击 Android Studio > Preferences > Experimental,然后您需要取消勾选 - Only sync the active variant。

Windows - 文件 > 设置 > 实验室,然后您需要取消勾选 - Only sync the active variant。

取消勾选该选项


在Android 3.5上,这已经被检查过了,取消勾选它可以解决我的问题。 - Displee

18

在清洁的PC安装中,我尝试了这里的所有技巧,但没有任何作用。我注意到有一条已登录的消息显示许可证未被接受。我打开了SDK管理器,下载了一些提示我接受许可证的软件包,然后它开始同步。


我不小心取消了 Android Studio 的全新安装,从而没有看到许可协议的同意/取消部分。安装一个随机的 API 引发了许可协议并解决了问题。 - ElliotM

12

当我使用新电脑安装了Android Studio后,我遇到了这个问题。

我通过安装与我的项目目标相匹配的正确版本的Android SDK来解决了这个问题。在我进行新的Android Studio安装时,只有API 29被安装在我的新机器上,但我的项目目标是API 28。

打开SDK管理器并下载适合您应用程序的正确的Android SDK,这个错误就应该解决了。


9
同@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,感谢@waqas-khalid-obeidy。 2. 或者,如果您正在使用gradlew命令行任务,请导航至here获取完整解释,感谢@amir-ziarati。

1
非常类似于我的问题,我打开的项目没有安装compileSDK。 - rob5408

7

我刚升级到AS 3.4版本,出现了同样的问题。这个问题只会在应用程序冷启动时发生。通过Build > Make Project编译项目或者使用命令行编译都可以正常工作。


1
我尝试过在出现这个问题时清理项目,然后重新编译也成功了,但每次都需要清理项目,真的很烦人。. . - Bingerz

2

浪费了整个一天,我终于找到了这个问题的解决方案。

只需要:

  1. 进入Android Studio中的SDK管理器
  2. 安装一些SDK包
  3. 重新构建项目

问题得以解决!


0

对于我的情况,是因为某些SDK许可证未被接受。当我通过命令行运行gradlew时,我找到了解决方法。下面的链接展示了如何通过sdkManager工具接受所有许可证。

您尚未接受以下SDK组件的许可协议


0

可能缺少Java JDK,建议检查一下


0
在我的情况下,我使用了另一个文件夹来存放 Android SDK,并在与 gradle 同步时发现了错误。当我将文件夹更改为默认值 ("/Users/xxx/AppData/Local/Android/Sdk") 时,问题解决了!

0
在我的情况下,我还没有安装支持compileSdkVersion的SDK。
例如:如果您已经提到了您的compileSdkVersion 28,请确保它已经在您的SDK管理器中安装。如果您还没有安装它,请先安装。

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