【问题标题】:Unsupported method: BaseConfig.getApplicationIdSuffix()不支持的方法:BaseConfig.getApplicationIdSuffix()
【发布时间】:2017-11-16 17:28:58
【问题描述】:

所以我正在阅读 Android 6 for Programmers: An App-Driven Approach 和前两个应用示例我对示例没有任何问题,这次是在 Android Studio 3.0 中加载的 FlagQuiz 示例Canary-3 我收到了这个错误,它不允许我构建项目:

错误:不支持的方法:BaseConfig.getApplicationIdSuffix()。 您连接的 Gradle 版本不支持该方法。 要解决此问题,您可以更改/升级您连接到的 Gradle 目标版本。 或者,您可以忽略此异常并从模型中读取其他信息。

您可以从本书网站here 下载源代码,以使用我正在测试的相同代码库进行测试。

【问题讨论】:

    标签: android android-studio-3.0


    【解决方案1】:

    好的,我想出了如何解决这个问题。

    • 打开 build.gradle 并将 gradle 版本更改为推荐版本:
      classpath 'com.android.tools.build:gradle:1.3.0'
      classpath 'com.android.tools.build:gradle:2.3.2'
    • 点击'Try Again'
    • 在消息框中会显示'Fix Gradle Wrapper and re-import project' 点击它,因为最低 gradle 版本是 3.3
    • 会弹出一个新错误并说The SDK Build Tools revision (23.0.1) is too low for project ':app'. Minimum required is 25.0.0 - 点击Update Build Tools version and sync project
    • 可能会弹出一个显示Android Gradle Plugin Update recommended 的窗口,请从那里更新。

    现在该项目应该可以在您的任何 Android 虚拟设备上运行了。

    【讨论】:

    • 我真的不明白为什么 Google 会让事情变得更难。
    • @AhmetCanAkgül 它没有!!
    • 在我的情况下,classpath 'com.android.tools.build:gradle:2.3.2' 工作。
    • 这确实有点麻烦。
    • @ACAkgul 是的,我们现在更新应用程序的频率降低了,每次我们这样做都是一项繁重的工作,一个简单的错误修复意味着我们必须更新我们的环境并花费数小时(如果不是几天)切换到新的 API 和环境。人们取笑微软,现在我认为微软是天使!
    【解决方案2】:

    对于 Android Studio 3,我需要更新两个文件来修复错误:--

    1. app/build.gradle

    buildscript {
        repositories {
            jcenter()
            mavenCentral()
            maven {
                url 'https://maven.google.com/'
                name 'Google'
            }
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.1'
        }
    }
    

    2。 app/gradle/wrapper/gradle-wrapper.properties

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

    【讨论】:

    • 这对我有用。应标记为正确答案。
    • @srs,请解释为什么在依赖项中阻止 gradle 版本 3.0.1,但在 gradle-wrapper 文件 4.1 中?不应该是同一个版本吗?
    • 很有趣,但在非常老的项目中无法做到这一点。然后我只是将 gradle 版本更改为 2.2.1 而不是 3.0.1 并且它起作用了。
    【解决方案3】:

    首先,打开您的应用程序模块 build.gradle 文件。

    根据你的项目依赖检查类路径。如果不改变这个类路径的版本。

    来自:

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

    收件人:

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

    或更高版本,根据您的 android studio 等级。

    如果仍然有问题,则更改 buildToolsVersion

    发件人:

    buildToolsVersion '21.0.0'
    

    收件人:

    buildToolsVersion '25.0.0'
    

    然后点击“再试一次”,gradle 将自动同步。 这样就解决了。

    【讨论】:

      【解决方案4】:

      在我的例子中,Android Studio 3.0.1,我通过以下两个步骤解决了这个问题。

      第 1 步:在项目级 build.gradle 中更改 Gradle 插件版本

      buildscript {
          repositories {
              jcenter()
              mavenCentral()
              maven {
                  url 'https://maven.google.com/'
                  name 'Google'
              }
          }
          dependencies {
              classpath 'com.android.tools.build:gradle:3.0.1'
          }
      }
      

      第 2 步:更改 gradle 版本

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

      【讨论】:

        【解决方案5】:

        我也遇到了同样的问题,得到了非常相似的解决方案:

        1. 将类路径更改为类路径'com.android.tools.build:gradle:2.3.2'

          Image after adding the classpath

        2. 指示更新构建工具版本的新消息,因此只需单击该消息即可更新。 Update

        【讨论】:

        • 请将您的代码直接粘贴到答案中,而不是使用图像。
        【解决方案6】:

        更改您的 gradle 版本或更新它

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

        alt+enter 并选择“替换为特定版本”。

        【讨论】:

          【解决方案7】:

          您可以通过更改 gradle 文件来做到这一点。

           build.gradle > change
              dependencies {
              classpath 'com.android.tools.build:gradle:3.0.1'
              }
              gradle-wrapper.properties > update
              distributionUrl=https://services.gradle.org/distributions/gradle-4.6-all.zip
          

          【讨论】:

            【解决方案8】:

            如果这个 ()Unsupported method: BaseConfig.getApplicationIdSuffix Android Project 是旧的并且您已经更新了 Android Studio,我所做的只是 CLOSE PROJECT 并再次运行它。它为我解决了这个问题。没有添加任何依赖项或其他答案所描述的任何内容。

            【讨论】:

              【解决方案9】:

              我执行了以下操作以使其在 AS 3.5 上运行

              1. app/build.gradle

                应用插件:'com.android.application'

                机器人{ compileSdkVersion 21 buildToolsVersion "25.0.0"

                defaultConfig {
                    applicationId "com.example.android.mobileperf.render"
                    minSdkVersion 14
                    targetSdkVersion 21
                    versionCode 1
                    versionName "1.0"
                }
                buildTypes {
                    release {
                        minifyEnabled false
                        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                    }
                }
                

                }

              依赖{ 实现文件树(目录:'libs',包括:['*.jar']) 实施 'com.android.support:appcompat-v7:21.0.0' 实施 'com.squareup.picasso:picasso:2.71828' }

              1. build.gradle

                构建脚本 { 存储库{ 中心() mavenCentral() 行家{ 网址'https://maven.google.com/' 名称“谷歌” } 谷歌() } 依赖{ 类路径'com.android.tools.build:gradle:3.0.1' } } 所有项目{ 存储库{ 中心() 谷歌() } }

              2. gradle-wrapper.properties

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

              【讨论】:

                猜你喜欢
                • 2020-11-24
                • 1970-01-01
                • 1970-01-01
                • 2020-04-23
                • 2020-04-13
                • 2020-12-06
                • 2019-12-17
                • 1970-01-01
                相关资源
                最近更新 更多