【问题标题】:Unsupported method: AndroidProject.getVariantNames() in Android Studio 3.4不受支持的方法:Android Studio 3.4 中的 AndroidProject.getVariantNames()
【发布时间】:2018-11-27 10:59:03
【问题描述】:

我刚刚更新到 Android Studio 3.4 (Canary 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

如何解决?

【问题讨论】:

  • 将distributionUrl 更新为distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip 怎么样?

标签: android android-gradle-plugin


【解决方案1】:

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

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

【讨论】:

  • 我一勾选那个标志,主题就变成了“Darkula”。奇怪。
【解决方案2】:

我终于找到了如何让事情再次发挥作用。

尝试在 gradle-wrapper.properties

中更改为使用 distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

build.gradle(项目级别)中的 classpath 'com.android.tools.build:gradle:3.2.1'。

【讨论】:

  • 好像是新版Android Studio的问题
  • @SeanDp32 当然,希望 Google 能尽快修复它
  • 这里也一样!我在这篇文章中绑定了解决方案,我的项目运行良好。我不知道为什么。但如果有人遇到这个问题,这就是解决方案
  • @SeanDp32 我认为是因为新的 Android Studio 需要更新的 Gradle 构建工具才能工作,但 Google 强制我们升级它的方式并不好。
  • 哦,我看到我收到消息告诉我升级 gradle 并且我一直推迟它。现在说得通了。
【解决方案3】:

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

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

【讨论】:

    【解决方案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 设置

    【讨论】:

    • 我确实花了一个小时调试 Gradle 同步失败,您的回答解决了它。谢谢。
    【解决方案5】:

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

    要修复你需要执行

    在 linux 和 osx 上:

    $ANDROID_HOME/tools/bin/sdkmanager --licenses 
    

    或 Windows:

    > C:\Users\erik\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --licenses 
    

    并接受所有许可协议。

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

        【解决方案7】:

        有两个不同的东西——distributionUrl 和插件版本。

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

        而distributionUrl指的是GradleWrapper,它位于(gradle-wrapper.properties)

        如果你去这个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
        

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

        【讨论】:

          【解决方案8】:

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

          在 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'
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-03-19
            • 2012-10-18
            • 1970-01-01
            • 2014-09-21
            • 2015-04-30
            • 2019-12-07
            • 2020-11-24
            • 1970-01-01
            相关资源
            最近更新 更多