android-studio - 不支持的 gradle 方法 : NativeArtifact. getSourceFolders()

标签 android-studio gradle

我正在使用 firebase 制作一个登录应用程序。我添加了所需的 firebase 依赖项。添加后,我同步了gradle,但它显示错误

Unsupported method: NativeArtifact.getSourceFolders().

我已经将 gradle 更新到最新版本。再次同步,还是出现同样的错误。

最佳答案

是 Gradle 的升级导致你的 Android Studio 3.2.1 出现这个错误。我相信 Android Studio 通常会向后兼容(某些)以前版本的 Gradle。可能在某些情况下,它也可以与更新版本的 Gradle 一起使用。但是,Android Studio 3.2.1 似乎与高于 4.6 的 Gradle 版本和高于 3.2.1 的 Android 插件不兼容 - 特别是如果您在 Gradle 文件中使用 cmake 外部 native 构建 block ,我猜你正在使用(基于你问题中的错误)。

Android Studio 让我也将 Gradle 和 Android 插件升级到更新的版本,然后构建失败并出现与您引用的相同的错误。

enter image description here

enter image description here

如果您实际上不需要使用 cmake,您可以注释掉 cmake 文件的路径 path "CMakeLists.txt" 或者甚至更好的整个 externalNativeBuild block .如果您不使用 CMake,我还没有试验过较新的 Gradle 和 Android 插件在 Android Studio 3.2.1 中的功能程度。

看来,要想摆脱这种情况,唯一的出路就是降级回原来版本的Gradle和Android plugin。好的...或者升级到 Android Studio 3.3。升级到 Android Studio 3.3 时要小心,因为这对我来说破坏了 JNI/C++ 集成。首先尝试 AS 3.3 的独立 ZIP 文件版本,或者确保您有备份。

要降级 Gradle,请打开 gradle/wrapper/gradle-wrapper.properties 并将 distributionUrl 更改为此值:

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

要降级 Android 插件,请打开您的根 build.gradle 文件并将类路径更改为:

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

或者,您也可以按 Ctrl-Alt-Shift-S(在 Windows 上,不确定是否适用于 MacOS/Linux)访问文件 -> 项目结构并切换到项目部分,您可以在其中更新 Gradle 和 Android 插件版本分别为 4.6 和 3.2.1:

enter image description here

这可能无法解决您的 Firebase 问题...但它应该可以回答您的问题并让您回到解决 Firebase 问题的正轨。

关于android-studio - 不支持的 gradle 方法 : NativeArtifact. getSourceFolders(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54267627/

相关文章:

android-studio - 错误: "SDK emulator directory is missing" in Android Studio on Linux

android - 如何在 android studio 中获取最新版本的库?

android - 我应该在 imeActionId 上放什么?

google-app-engine - Android Studio中App Engine项目的永久测试数据库

android - java.io.IOException:无法运行程序 “dx”:error = 2,没有这样的文件或目录

安卓工作室 org.gradle.api.GradleException

android-studio - 更新到 Android Studio 3.3.0 后,Gradle 项目同步失败

android - Gradle 恶魔启动数百个虚拟机

android - 如何从 Gradle 项目依赖项中排除重复的 native 库?

java - 使用gradle从spring boot 1.5.3构建可执行文件.jar