지원되지 않는 메소드 : BaseConfig.getApplicationIdSuffix ()


248

그래서 프로그래머 용 Android 6을 읽고 있습니다 : App-Driven Approach 와 처음 두 가지 응용 프로그램 예제에는 문제가 없었습니다. 이번에는 Android Studio 3.0 Canary-3에로드 할 때 FlagQuiz 예제가 발생했습니다.이 오류가 발생합니다. 프로젝트를 만들 수 없습니다.

오류 : 지원되지 않는 메소드 : BaseConfig.getApplicationIdSuffix (). 연결 한 Gradle 버전은 해당 방법을 지원하지 않습니다. 문제를 해결하기 위해 연결하려는 Gradle의 대상 버전을 변경 / 업그레이드 할 수 있습니다. 또는이 예외를 무시하고 모델에서 다른 정보를 읽을 수 있습니다.

여기 서적 사이트에서 소스를 다운로드하여 테스트중인 동일한 코드 기반으로 테스트 할 수 있습니다.

답변:


643

좋아,이 문제를 해결하는 방법을 알아 냈습니다.

  • 열기 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있습니다.

이제 모든 안드로이드 가상 장치에서 프로젝트를 실행할 수 있습니다.


136
나는 왜 구글이 일을 더 어렵게 만드는지 이해하지 못한다.
ACAkgul

1
@ AhmetCanAkgül 그렇습니다!
가장 무도회

1
제 경우에는 classpath 'com.android.tools.build:gradle:2.3.2'가 작동합니다.
Prags

확실히 약간의 집안일입니다.
Scott Fraley

13
@ACAkgul Yep, 우리는 지금 앱을 자주 업데이트하지 않습니다.이 작업을 수행 할 때마다 간단한 버그 수정은 환경을 업데이트하고 새로운 API 및 환경으로 전환하기 위해 몇 일이 아니라면 시간을 소비해야 함을 의미합니다. 사람들은 마이크로 소프트를 놀립니다. 이제 저는 MS가 천사라고 생각합니다!
albattran

91

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

이것은 나를 위해 일했습니다. 정답으로 표시되어야합니다.
Tina J

1
@ srs, 의존성에서 gradle 버전 3.0.1을 차단하지만 gradle-wrapper 파일 4.1에서 이유를 설명하십시오. 같은 버전이 아니어야합니까?
Johnny Five 5

1
흥미롭지 만 실제로 오래된 프로젝트에서는이 작업을 수행 할 수 없었습니다. 그런 다음 gradle 버전을 3.0.1이 아니라 2.2.1로 변경했는데 효과가있었습니다.
Johnny Five 5

48

먼저 애플리케이션 모듈 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이 자동으로 동기화됩니다. 이것은 그것을 해결할 것입니다.


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

11

나는 또한 같은 문제에 직면하고 매우 비슷한 해결책을 얻었습니다.

  1. 클래스 경로를 클래스 경로 'com.android.tools.build:gradle:2.3.2'로 변경

    클래스 경로를 추가 한 후의 이미지

  2. 빌드 도구 버전 업데이트를 표시하는 새 메시지이므로 해당 메시지를 클릭하여 업데이트하십시오. 최신 정보


5
이미지를 사용하는 대신 코드를 답변에 직접 붙여 넣으십시오.
Tom Aranda

10

gradle 버전을 변경하거나 업데이트하십시오.

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

Alt + Enter를 누르고 "특정 버전으로 교체"를 선택하십시오.


5

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

0

이 () 지원되지 않는 메소드 : BaseConfig.getApplicationIdSuffix Android 프로젝트가 오래되었고 Android Studio를 업데이트 한 경우, 단순히 프로젝트닫고 다시 실행 한 것입니다. 그것은 나를 위해 문제를 해결했습니다. 종속성이나 다른 답변에 설명 된 내용을 추가하지 않았습니다.


0

AS 3.5 에서이 작업을 수행하기 위해 다음을 수행했습니다.

  1. app / build.gradle

    플러그인 적용 : 'com.android.application'

    android {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'
        }
    }
    

    }

의존성 {구현 fileTree (dir : 'libs', include : [ '* .jar']) 구현 'com.android.support:appcompat-v7:21.0.0'구현 'com.squareup.picasso : picasso : 2.71828'}

  1. build.gradle

    빌드 스크립트 {리포지토리 {jcenter () mavenCentral () maven {url ' https://maven.google.com/'name 'Google'} google ()} 종속성 {classpath 'com.android.tools.build:gradle:3.0. 1 '}} allprojects {리포지토리 {jcenter () google ()}}

  2. gradle-wrapper.properties

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.