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

时间:2019-01-19 13:32:29

标签: android-studio gradle

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

  

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

我已经将gradle更新到了最新版本。我再次进行了同步,但是仍然出现相同的错误。

1 个答案:

答案 0 :(得分:6)

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

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

enter image description here

enter image description here

如果您实际上不需要使用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

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

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

或者,您也可以按Ctrl-Alt-Shift-S(在Windows上,对于MacOS / Linux不确定),然后访问File-> Project Structure并切换到Project部分,您可以在其中更新Gradle和Android插件版本分别为4.6和3.2.1:

enter image description here

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