不支持的方法:BaseConfig.getApplicationIdSuffix()

时间:2017-06-14 13:54:36

标签: android android-studio-3.0

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

  

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

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

9 个答案:

答案 0 :(得分:617)

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

  • 打开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虚拟设备上运行。

答案 1 :(得分:90)

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

<强> 1。应用程序/的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。应用程序/ gradle这个/包装/ gradle-wrapper.properties

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

答案 2 :(得分:46)

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

根据您的项目依赖关系检查类路径。如果不更改此类路径的版本。

发件人:

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

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

或更高版本根据你的安卓工作室的gradle。

如果仍有问题,请更改 buildToolsVersion

发件人:

buildToolsVersion '21.0.0'

buildToolsVersion '25.0.0'

然后点击'再试一次'并且gradle会自动同步。 这将解决它。

答案 3 :(得分:16)

在我的案例中,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

答案 4 :(得分:11)

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

  1. 将类路径更改为classpath&#39; com.android.tools.build:gradle:2.3.2&#39;

    Image after adding the classpath

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

答案 5 :(得分:10)

更改您的gradle版本或更新它

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

alt +输入并选择&#34;替换为特定版本&#34;。

答案 6 :(得分:4)

您可以通过更改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

答案 7 :(得分:0)

如果此()不受支持的方法:BaseConfig.getApplicationIdSuffix Android项目已旧并且您已更新Android Studio,那么我所做的只是 CLOSE PROJECT 然后再次运行它。它为我解决了这个问题。没有添加任何依赖项或其他答案描述的内容。

答案 8 :(得分:0)

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

  1. app / build.gradle

    应用插件:“ com.android.application”

    android {     编译版本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'
        }
    }
    

    }

依赖项{     实现fileTree(dir:'libs',包括:['* .jar'])     实施'com.android.support:appcompat-v7:21.0.0'     实施'com.squareup.picasso:picasso:2.71828' }

  1. build.gradle

    buildscript {     储存库{         jcenter()         mavenCentral()         专家{             网址'https://maven.google.com/'             名称为“ Google”         }         谷歌()     }     依赖项{         classpath'com.android.tools.build:gradle:3.0.1'     } } 所有项目{     储存库{         jcenter()         谷歌()     } }

  2. gradle-wrapper.properties

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