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

Abd*_*bar 2 gradle android-studio

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

不支持的方法:NativeArtifact.getSourceFolders()。

我已经把gradle更新到了最新版本。我再次同步,但是仍然发生相同的错误。

oma*_*ena 6

是Gradle的升级导致了Android Studio 3.2.1中的此错误。我相信Android Studio通常会向后兼容(某些)较早版本的Gradle。在某些情况下,它可能也可以与较新版本的Gradle一起使用。但是,看起来Android Studio 3.2.1与高于4.6的Gradle版本和低于3.2.1的Android插件不兼容-特别是如果您使用的是cmake在Gradle文件外部本机构建块,我猜您正在使用(根据您问题中的错误)。

Android Studio向我提供了将Gradle和Android Plugin都升级到新版本的功能,然后构建失败,并出现与您引用的错误相同的错误。

在此处输入图片说明

在此处输入图片说明

如果您实际上不需要使用cmake,则可以注释掉cmake文件的路径,path "CMakeLists.txt"甚至可以将整个路径注释掉。externalNativeBuild块。如果您不使用CMake,我还没有尝试过较新的Gradle和Android插件在Android Studio 3.2.1中可以工作的程度。

看来,解决此问题的唯一方法是降级到Gradle和Android插件的原始版本。确定...或升级到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
Run Code Online (Sandbox Code Playgroud)

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

classpath 'com.android.tools.build:gradle:3.2.1'
Run Code Online (Sandbox Code Playgroud)

或者,您也可以按Ctrl-Alt-Shift-S(在Windows上,不确定MacOS / Linux)访问“文件”->“项目结构”并切换到“项目”部分,在此您可以将Gradle和Android插件版本都更新为4.6。和3.2.1:

在此处输入图片说明

这可能无法解决您的Firebase问题...但是它应该回答您的问题,并使您回到解决Firebase问题的轨道上。