Phương thức không được hỗ trợ: BaseConfig.getApplicationIdSuffix ()


248

Vì vậy, tôi đang đọc Android 6 cho lập trình viên: Cách tiếp cận dựa trên ứng dụng và hai ví dụ ứng dụng đầu tiên tôi không gặp vấn đề gì với các ví dụ, lần này là ví dụ FlagQuiz khi được tải trong Android Studio 3.0 Canary-3 Tôi gặp lỗi này không cho phép tôi xây dựng dự án:

Lỗi: Phương thức không được hỗ trợ: BaseConfig.getApplicationIdSuffix (). Phiên bản Gradle bạn kết nối không hỗ trợ phương thức đó. Để giải quyết vấn đề, bạn có thể thay đổi / nâng cấp phiên bản đích của Gradle mà bạn kết nối. Ngoài ra, bạn có thể bỏ qua ngoại lệ này và đọc thông tin khác từ mô hình.

Bạn có thể tải xuống nguồn từ trang sách tại đây để kiểm tra với cùng một cơ sở mã mà tôi đang kiểm tra.

Câu trả lời:


643

Được rồi tôi đã tìm ra cách khắc phục vấn đề này.

  • Mở build.gradle và thay đổi phiên bản gradle thành phiên bản được đề xuất:
    classpath 'com.android.tools.build:gradle:1.3.0'thành
    classpath 'com.android.tools.build:gradle:2.3.2'
  • Đánh 'Try Again'
  • Trong hộp thông báo, nó sẽ nói 'Fix Gradle Wrapper and re-import project'Bấm vào đó, vì phiên bản lớp tối thiểu là3.3
  • Một lỗi mới sẽ bật lên và nói The SDK Build Tools revision (23.0.1) is too low for project ':app'. Minimum required is 25.0.0- LượtUpdate Build Tools version and sync project
  • Một cửa sổ có thể bật lên mà nói Android Gradle Plugin Update recommended, chỉ cần cập nhật từ đó.

Bây giờ dự án nên được chạy ngay bây giờ trên bất kỳ thiết bị ảo Android nào của bạn.


136
Tôi thực sự không hiểu tại sao Google làm cho mọi thứ khó khăn hơn.
ACAkgul

1
@ AhmetCanAkgül Nó không !!
masage0097

1
trong trường hợp của tôi classpath 'com.android.tools.build:gradle:2.3.2' đang hoạt động.
Prags

Nó chắc chắn là một chút việc vặt.
Scott Fraley

13
@ACAkgul Yep, hiện tại chúng tôi đang cập nhật ứng dụng của mình ít hơn, mỗi khi chúng tôi làm việc này là một việc lớn, sửa lỗi đơn giản có nghĩa là chúng tôi phải cập nhật môi trường của mình và dành hàng giờ (nếu không phải vài ngày) để chuyển sang API và môi trường mới. Mọi người chế nhạo Microsoft, giờ tôi nghĩ MS là thiên thần!
albattran

91

Đối với Android Studio 3, tôi cần cập nhật hai tệp để sửa lỗi: -

1. ứng dụng / 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. ứng dụng / gradle / Wrapper / gradle-wrapper.properies

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

Điều này làm việc cho tôi. Nên được đánh dấu là câu trả lời đúng.
Tina J

1
@srs, vui lòng giải thích tại sao trong phần phụ thuộc chặn phiên bản lớp 3.0.1, nhưng trong tệp lớp bọc 4.1? Nó không phải là cùng một phiên bản?
Johnny Five

1
Thú vị, nhưng không thể làm điều này trong dự án thực sự cũ. Sau đó, tôi chỉ thay đổi phiên bản gradle không thành 3.0.1 mà là 2.2.1 và nó đã hoạt động.
Johnny Five

48

Đầu tiên, mở tệp build.gradle mô-đun ứng dụng của bạn .

Kiểm tra classpath theo phụ thuộc dự án của bạn. Nếu không thay đổi phiên bản của classpath này.

từ:

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

Đến:

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

hoặc phiên bản cao hơn theo cấp độ của studio android.

Nếu nó vẫn có vấn đề, thì hãy thay đổi buildToolsVersion :

Từ:

buildToolsVersion '21.0.0'

Đến:

buildToolsVersion '25.0.0'

sau đó nhấn 'Thử lại' và lớp sẽ tự động đồng bộ hóa. Điều này sẽ giải quyết nó.


16

Trong trường hợp của tôi, Android Studio 3.0.1, tôi đã khắc phục sự cố bằng hai bước sau.

Bước 1: Thay đổi phiên bản plugin Gradle trong build.gradle cấp dự án

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

Bước 2: Thay đổi phiên bản lớp

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

11

Tôi cũng gặp phải vấn đề tương tự và có một giải pháp rất giống nhau:

  1. Thay đổi đường dẫn thành đường dẫn 'com.android.tools.build:gradle:2.3.2'

    Hình ảnh sau khi thêm đường dẫn lớp

  2. Một thông báo mới cho biết phiên bản Cập nhật Công cụ Xây dựng, vì vậy chỉ cần nhấp vào thông báo đó để cập nhật. Cập nhật


5
Vui lòng dán mã của bạn trực tiếp vào câu trả lời thay vì sử dụng hình ảnh.
Tom Aranda

10

Thay đổi phiên bản lớp của bạn hoặc cập nhật nó

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

alt + nhập và chọn "thay thế bằng phiên bản cụ thể".


5

Bạn có thể làm điều này bằng cách thay đổi tập tin 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

Nếu phương thức này () không được hỗ trợ: BaseConfig.getApplicationIdSuffix Android Project đã cũ và bạn đã cập nhật Android Studio, những gì tôi đã làm chỉ đơn giản là ĐÓNG DỰ ÁN và chạy lại. Nó giải quyết vấn đề cho tôi. Không thêm bất kỳ phụ thuộc hoặc bất cứ điều gì như được mô tả bởi các câu trả lời khác.


0

Tôi đã làm như sau để thực hiện việc này trên AS 3.5

  1. ứng dụng / build.gradle

    áp dụng plugin: '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'
        }
    }

    }

phụ thuộc {tệp thực hiệnTree (dir: 'libs', bao gồm: ['* .jar']) triển khai 'com.android.support:appcompat-v7:21.0.0' triển khai 'com.sapesup.picasso: picasso: 2.71828'}

  1. xây dựng. nâng cấp

    buildscript {reporiesories {jcenter () mavenCentral () maven {url ' https://maven.google.com/ ' name 'Google'} google ()} phụ thuộc {classpath 'com.android.tools.build:gradle:3.0. 1 '}} tất cả các sản phẩm {kho lưu trữ {jcenter () google ()}}

  2. gradle-wrapper.properies

    phân phốiUrl = https: //service.gradle.org/distribution/gradle-4.1-all.zip

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.