Desteklenmeyen yöntem: BaseConfig.getApplicationIdSuffix ()


248

Bu yüzden Programcılar için Android 6'yı okuyorum : Uygulamaya Dayalı Bir Yaklaşım ve örneklerle ilgili hiçbir sorun yaşamadığım ilk iki uygulama örneği, bu sefer Android Studio 3.0 Canary-3'e yüklendiğinde FlagQuiz örneğini alıyorum. projeyi inşa etmeme izin vermiyor:

Hata: Desteklenmeyen yöntem: BaseConfig.getApplicationIdSuffix (). Bağlandığınız Gradle sürümü bu yöntemi desteklemiyor. Sorunu çözmek için bağlandığınız Gradle'ın hedef sürümünü değiştirebilir / yükseltebilirsiniz. Alternatif olarak, bu istisnayı yoksayabilir ve modeldeki diğer bilgileri okuyabilirsiniz.

Test ettiğim kod tabanıyla test etmek için kaynağı buradan kitap sitesinden indirebilirsiniz .

Yanıtlar:


643

Pekala, bu sorunun nasıl çözüleceğini anladım.

  • Açık build.gradle ve tavsiye edilen versiyona gradle sürümünü değiştirin:
    classpath 'com.android.tools.build:gradle:1.3.0'için
    classpath 'com.android.tools.build:gradle:2.3.2'
  • hit 'Try Again'
  • Mesajlar kutusunda 'Fix Gradle Wrapper and re-import project', minimum sınıf sürümü olduğundan3.3
  • Yeni bir hata açılır ve söylenir The SDK Build Tools revision (23.0.1) is too low for project ':app'. Minimum required is 25.0.0- VurUpdate Build Tools version and sync project
  • Bir pencere açılır Android Gradle Plugin Update recommended, sadece oradan güncelleme diyebilir.

Şimdi proje android sanal cihazlarınızdan herhangi birinde şimdi çalıştırılabilir olmalıdır.


137
Google'ın işleri neden zorlaştırdığını gerçekten anlamıyorum.
ACAkgul

1
@ AhmetCanAkgül Olmuyor !!
Masquerade0097

1
Benim durumumda sınıf yolum 'com.android.tools.build:gradle:2.3.2' çalışıyor.
Prags

Kesinlikle biraz angarya.
Scott Fraley

13
@ACAkgul Evet, uygulamalarımızı şimdi daha az sıklıkta güncelliyoruz, her yaptığımızda bu büyük bir iştir, basit bir hata düzeltmesi, ortamımızı güncellememiz ve yeni API'lara ve ortama geçmek için saatler (günler değilse bile) harcamanız gerektiği anlamına gelir. İnsanlar Microsoft'la dalga geçiyor, şimdi MS'in melek olduğunu düşünüyorum!
albattran

91

Android Studio 3 için hatayı düzeltmek için iki dosyayı güncellemem gerekiyor: -

1. uygulama / 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 / sarıcı / gradle-wrapper.properties

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

Bu benim için çalıştı. Doğru cevap olarak işaretlenmelidir.
Tina J

1
Lütfen, bağımlılıklarda sınıf sürüm 3.0.1 neden engelleme, ancak sürüm 4. paket dosyası 4.1 açıklayınız? Aynı sürüm olmamalı mı?
Johnny Five

1
İlginç, ama gerçekten eski bir projede bunu yapamadı. Sonra sadece sürüm sürümünü 3.0.1 değil 2.2.1 olarak değiştirdim ve işe yaradı.
Johnny Five

48

İlk olarak, build.gradle uygulama modülünüzü açın dosyanızı açın.

Sınıf yolunu proje bağımlılığınıza göre kontrol edin . Değilse, bu sınıf yolunun sürümünü değiştirin.

dan:

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

Kime:

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

veya android stüdyosunun derecesine göre daha yüksek sürüm.

Sorun hala devam ediyorsa buildToolsVersion'ı değiştirin :

Gönderen:

buildToolsVersion '21.0.0'

Kime:

buildToolsVersion '25.0.0'

ardından 'Tekrar dene' düğmesine bastığınızda sınıf otomatik olarak senkronize edilir. Bu çözecek.


16

Benim durumumda, Android Studio 3.0.1, aşağıdaki iki adımla sorunu çözdüm.

Adım 1: Proje düzeyinde derlemede Gradle eklentisi sürümünü değiştirin.

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

2. Adım: Sınıf sürümünü değiştirme

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

11

Aynı sorunla karşılaştım ve çok benzer bir çözüm buldum:

  1. Sınıf yolunu 'com.android.tools.build:gradle:2.3.2' sınıf yoluna değiştirme

    Sınıfyolunu ekledikten sonraki görüntü

  2. Build Tool sürümünü Güncelle'yi belirten yeni bir mesaj, bu nedenle güncellemek için bu mesajı tıklayın. Güncelleme


5
Lütfen kodunuzu resimleri kullanmak yerine doğrudan cevaba yapıştırın.
Tom Aranda

10

Gradle sürümünüzü değiştirin veya güncelleyin

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

alt + enter tuşuna basın ve "belirli sürümle değiştir" i seçin.


5

Gradle dosyasını değiştirerek bunu yapabilirsiniz.

 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

Bu () Desteklenmeyen yöntem: BaseConfig.getApplicationIdSuffix Android Project eskiyse ve Android Studio'yu güncellediyseniz, yaptığım sadece PROJEYİ KAPATIN ve tekrar çalıştırın. Sorunu benim için çözdü. Herhangi bir bağımlılık veya başka cevaplar tarafından tarif edilen herhangi bir şey eklemedi.


0

Bu AS 3.5 çalıştırmak için aşağıdakileri yaptım

  1. app / build.gradle

    eklenti uygula: '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'
        }
    }

    }

bağımlılıklar {application fileTree (dir: 'libs', şunları içerir: ['* .jar']) application 'com.android.support:appcompat-v7:21.0.0' application 'com.squareup.picasso: picasso: 2.71828'}

  1. build.gradle

    buildscript {repositories {jcenter () mavenCentral () maven {url ' https://maven.google.com/ ' ad 'Google'} google ()} bağımlılıklar {classpath 'com.android.tools.build:gradle:3.0. 1 '}} tüm projeler {depolar {jcenter () google ()}}

  2. gradle-wrapper.properties

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.