不支持的方法:Android Studio 3.4中的AndroidProject.getVariantNames()

时间:2018-11-27 10:59:03

标签: android android-gradle

我刚刚更新为 Android Studio 3.4(金丝雀5)。然后,我打开了现有项目(在Android Studio 3.3 Beta上可以完美运行)并收到此错误:

ERROR: Unsupported method: AndroidProject.getVariantNames().
The version of Gradle you connect to does not support that method.
To resolve the problem you can change/upgrade the target version of Gradle you connect to.
Alternatively, you can ignore this exception and read other information from the model.

完全清除并重建,使缓存无效并重新启动,重新导入项目无效。

gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

build.gradle (项目级别):

dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
}

关于Android Studio

Android Studio 3.4 Canary 5
Build #AI-183.4284.36.34.5141831, built on November 20, 2018
JRE: 1.8.0_152-release-1248-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.0-39-generic

如何解决这个问题?

8 个答案:

答案 0 :(得分:32)

最后,我发现了如何使事情再次起作用。

尝试更改以使用 gradle-wrapper.properties

中的Create Trigger [dbo].[Modified_Demand_Request1] on [dbo].[Demand_Request] FOR INSERT AS Insert Into[dbo].[Modified_Demand_Request] ([CASE_ID],[TE_PART_NUMBER],[VALUE],[DEMAND_DATE],[Modified_On]) SELECT [CASE_ID],[TE_PART_NUMBER],[VALUE],[DEMAND_DATE],GETDATE() FROM INSERTED

和{strong> build.gradle (项目级别)中的distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

答案 1 :(得分:30)

您需要在Android Studio中禁用此设置:

File> Settings(或以前版本的Preferences)> Experimental> Only sync active variant

答案 2 :(得分:4)

升级到Android Studio 3.3并重新加载使用较早版本的Gradle的较旧项目后,得到了相同的错误消息。我通过更改现有项目级别 gradle.build 文件

中的以下行来修复我的项目
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
    }

此外,我还删除了一些较旧的SDK,需要在“打开模块设置”中设置项目级别的SDK。

这两项更改之后,消息发生了变化,并包含一些自动修复链接,这些链接使我的项目恢复了正常运行。

  

错误:支持的最低Gradle版本为4.10.1。当前版本是   4.4。

     

请修复项目的Gradle设置。

     

修复Gradle包装器并重新导入项目Gradle设置

答案 3 :(得分:2)

安装新的Android Studio 3.3后出现此问题。

我从Tools -> SDK ManagerFile -> Settings -> Appearance & Behaviour -> System Settings -> Android SDK安装了Android 8.1(Oreo),项目成功同步并构建。

答案 4 :(得分:1)

任何其他回应都解决了我的问题, 我发现这是因为缺少许可协议。

要修复,您需要执行

在linux和osx上:

setOption

或Windows:

$ANDROID_HOME/tools/bin/sdkmanager --licenses 

并接受所有许可协议。

答案 5 :(得分:1)

只需完成此Android Gradle plugin release notes,您就可以将可用的gradle插件版本与gradle版本进行匹配。可以在此站点上找到此表的更新版本。

enter image description here

在gradle-wrapper.properties文件中,更改了所需的gradle版本,例如

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

在build.gradle文件中,添加像这样的正确gradle插件版本

dependencies {
    classpath 'com.android.tools.build:gradle:3.5.2'
}

答案 6 :(得分:0)

当您安装新版本的Android Studio并说“ 3.x.x”时,就会发生这种情况。 您只需在build.gradle文件中添加以下行即可解决此错误。

依赖项{classpath'com.android.tools.build:gradle:3.3.0'}

答案 7 :(得分:0)

有两种不同的东西-distributionUrl和插件版本。

插件版本在项目级别的build.gradle文件中被称为类路径'com.android.tools.build:gradle:3.2.1'或'com.android.tools.build:gradle:3.3.1'。

distributionUrl是指(gradle-wrapper.properties)中的GradleWrapper

如果您转到link,将看到两者之间的链接。

与2019年4月一样,最新的插件版本为3.4.0 并且最新的distributionUrl为5.1.1

因此在您的项目级别的build.gradle文件中

 dependencies {
    classpath 'com.android.tools.build:gradle:3.4.0'


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

并在gradle-wrapper.properties中执行:-

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

然后进行同步,应该很好。