Metode yang tidak didukung: BaseConfig.getApplicationIdSuffix ()

248

Jadi saya membaca Android 6 untuk Programmer: Sebuah Pendekatan Berbasis Aplikasi dan dua contoh aplikasi pertama yang saya tidak punya masalah dengan contoh-contoh, kali ini contoh FlagQuiz ketika dimuat di Android Studio 3.0 Canary-3 Saya mendapatkan kesalahan ini yang tidak membiarkan saya membangun proyek:

Kesalahan: Metode yang tidak didukung: BaseConfig.getApplicationIdSuffix (). Versi Gradle yang Anda sambungkan tidak mendukung metode itu. Untuk mengatasi masalah ini, Anda dapat mengubah / meningkatkan versi target Gradle yang Anda sambungkan. Atau, Anda dapat mengabaikan pengecualian ini dan membaca informasi lain dari model.

Anda dapat mengunduh sumber dari situs buku di sini untuk menguji dengan basis kode yang sama dengan yang saya uji.

exs
sumber

Jawaban:

643

Baiklah saya menemukan cara untuk memperbaiki masalah ini.

  • Buka build.gradle dan ubah versi gradle ke versi yang disarankan:
    classpath 'com.android.tools.build:gradle:1.3.0'menjadi
    classpath 'com.android.tools.build:gradle:2.3.2'
  • Memukul 'Try Again'
  • Di kotak pesan itu akan mengatakan 'Fix Gradle Wrapper and re-import project'Klik itu, karena versi gradle minimum adalah3.3
  • Kesalahan baru akan muncul dan berkata The SDK Build Tools revision (23.0.1) is too low for project ':app'. Minimum required is 25.0.0- HitUpdate Build Tools version and sync project
  • Sebuah jendela mungkin muncul yang mengatakan Android Gradle Plugin Update recommended, cukup perbarui dari sana.

Sekarang proyek harus dapat dijalankan sekarang di semua perangkat virtual android Anda.

exs
sumber
136
Saya benar-benar tidak mengerti mengapa Google membuat segalanya menjadi lebih sulit.
ACAkgul
1
@ AhmetCanAkgül Tidak !!
Masquerade0097
1
dalam kasus saya classpath 'com.android.tools.build:gradle:.3.2' berfungsi.
Prags
Ini pasti sedikit tugas.
Scott Fraley
13
@ ACAkgul Yap, kami memperbarui aplikasi kami lebih jarang sekarang, setiap kali kami melakukan ini adalah tugas besar, perbaikan bug sederhana berarti kami harus memperbarui lingkungan kami dan menghabiskan berjam-jam (jika bukan hari) untuk beralih ke API dan lingkungan baru. Orang-orang mengolok-olok Microsoft, sekarang saya pikir MS adalah malaikat!
albattran
91

Untuk Android Studio 3 saya perlu memperbarui dua file untuk memperbaiki kesalahan: -

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
sumber
Ini berhasil untuk saya. Harus ditandai sebagai jawaban yang benar.
Tina J
1
@srs, tolong jelaskan mengapa di dependensi memblokir gradle versi 3.0.1, tetapi dalam file gradle-wrapper 4.1? Bukankah seharusnya versi yang sama?
Johnny Five
1
Menarik, tetapi tidak bisa melakukan ini dalam proyek yang sangat lama. Lalu saya baru saja mengubah versi gradle tidak ke 3.0.1 tetapi ke 2.2.1 dan berhasil.
Johnny Five
48

Pertama, buka file build.gradle modul aplikasi Anda .

Periksa classpath sesuai dengan ketergantungan proyek Anda. Jika tidak mengubah versi classpath ini.

dari:

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

Untuk:

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

atau versi yang lebih tinggi sesuai dengan tingkat studio Android Anda.

Jika masih bermasalah, maka ubah buildToolsVersion :

Dari:

buildToolsVersion '21.0.0'

Untuk:

buildToolsVersion '25.0.0'

lalu tekan 'Coba lagi' dan gradle akan secara otomatis menyinkronkan. Ini akan menyelesaikannya.

amit pandya
sumber
16

Dalam kasus saya, Android Studio 3.0.1, saya memperbaiki masalah dengan dua langkah berikut.

Langkah 1: Ubah versi plugin Gradle di build.gradle tingkat proyek

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

Langkah 2: Ubah versi gradle

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Harry Zhang
sumber
11

Saya juga menghadapi masalah yang sama dan mendapatkan solusi yang sangat mirip:

  1. Mengubah classpath ke classpath 'com.android.tools.build:gradle:.3.2'

    Gambar setelah menambahkan classpath

  2. Pesan baru yang menunjukkan ke versi Perbarui Alat Build, jadi cukup klik pesan itu untuk memperbarui. Memperbarui

Girish BR
sumber
5
Silakan tempel kode Anda langsung ke jawaban yang bertentangan dengan menggunakan gambar.
Tom Aranda
10

Ubah versi gradle Anda atau perbarui

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

alt + enter dan pilih "ganti dengan versi tertentu".

Exel Staderlin
sumber
5

Anda dapat melakukan ini dengan mengubah file 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
Mudassir Khan
sumber
0

Jika ini () Metode yang tidak didukung: BaseConfig.getApplicationIdSuffix Android Project sudah tua dan Anda telah memperbarui Android Studio, yang saya lakukan hanyalah TUTUP PROYEK dan jalankan lagi. Itu memecahkan masalah bagi saya. Tidak menambahkan dependensi atau apa pun seperti yang dijelaskan oleh jawaban lain.

itzo
sumber
0

Saya melakukan yang berikut untuk menjalankan ini di AS 3.5

  1. app / build.gradle

    terapkan plugin: 'com.android.aplikasi'

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

    }

dependencies {implementasi fileTree (dir: 'libs', termasuk: ['* .jar']) implementasi 'com.android.support:appcompat-v7:21.0.0' implementasi 'com.squareup.picasso: picasso: 2.71828'}

  1. build.gradle

    buildscript {repositories {jcenter () mavenCentral () maven {url ' https://maven.google.com/ ' name 'Google'} google ()} dependensi {classpath 'com.android.tools.build:gradle:3.0. 1 '}} semua proyek {repositori {jcenter () google ()}}

  2. gradle-wrapper.properties

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

Herman
sumber