วิธีที่ไม่สนับสนุน: BaseConfig.getApplicationIdSuffix ()


248

ดังนั้นฉันกำลังอ่านAndroid 6 สำหรับโปรแกรมเมอร์: วิธีการที่ใช้แอพขับเคลื่อนและตัวอย่างแอพสองตัวแรกที่ฉันไม่มีปัญหาเกี่ยวกับตัวอย่างในครั้งนี้ตัวอย่าง FlagQuiz เมื่อโหลดใน Android Studio 3.0 Canary-3 ฉันได้รับข้อผิดพลาดนี้ ไม่ให้ฉันสร้างโครงการ:

ข้อผิดพลาด: วิธีที่ไม่สนับสนุน: 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เพียงอัปเดตจากที่นั่น

ตอนนี้โปรเจ็กต์สามารถรันได้บนอุปกรณ์เสมือน Android ของคุณ


137
ฉันไม่เข้าใจว่าทำไม Google จึงทำให้สิ่งต่าง ๆ ยากขึ้น
ACAkgul

1
@ AhmetCanAkgülมันไม่ได้ !!
Masquerade0097

1
ในกรณีของฉัน classpath 'com.android.tools.build:gradle:2.3.2' ทำงาน
Prags

แน่นอนว่ามันเป็นงานที่น่าเบื่อ
Scott Fraley

13
@ACAkgul ใช่เรากำลังอัปเดตแอปของเราน้อยลงทุกครั้งที่เราทำเช่นนี้มันเป็นงานที่หนักหนาสาหัสการแก้ไขข้อผิดพลาดอย่างง่ายหมายความว่าเราต้องอัปเดตสภาพแวดล้อมของเราและใช้เวลาหลายชั่วโมง (ถ้าไม่ใช่วัน) ผู้คนต่างให้ความสนุกกับ Microsoft ตอนนี้ฉันคิดว่า MS เป็นเทวดา!
albattran

91

สำหรับ 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 / 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 ห้า

1
ที่น่าสนใจ แต่ไม่สามารถทำสิ่งนี้ในโครงการเก่าจริง ๆ จากนั้นฉันเพิ่งเปลี่ยนเวอร์ชั่น gradle ไม่ใช่ 3.0.1 แต่เป็น 2.2.1 และใช้งานได้
Johnny ห้า

48

ก่อนอื่นให้เปิดไฟล์build.gradleโมดูลแอปพลิเคชันของคุณ

ตรวจสอบclasspathตามการพึ่งพาโครงการของคุณ ถ้าไม่เปลี่ยนรุ่นของ classpath นี้

จาก:

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

ถึง:

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

หรือรุ่นที่สูงกว่าตามระดับเสียงของ android studio

หากยังคงมีปัญหาอยู่ให้เปลี่ยนbuildToolsVersion :

จาก:

buildToolsVersion '21.0.0'

ถึง:

buildToolsVersion '25.0.0'

จากนั้นกด 'ลองอีกครั้ง' และระดับเสียงจะซิงค์โดยอัตโนมัติ นี่จะแก้มัน


16

ในกรณีของฉัน Android Studio 3.0.1 ฉันแก้ไขปัญหาด้วยสองขั้นตอนต่อไปนี้

ขั้นตอนที่ 1: เปลี่ยนรุ่นปลั๊กอิน Gradle ใน 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

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

11

ฉันยังประสบปัญหาเดียวกันและได้วิธีการแก้ปัญหาที่คล้ายกันมาก:

  1. การเปลี่ยน classpath เป็น classpath 'com.android.tools.build:gradle:2.3.2'

    ภาพหลังจากเพิ่ม classpath

  2. ข้อความใหม่ระบุว่าเป็นรุ่นเครื่องมือสร้างการอัปเดตดังนั้นเพียงคลิกที่ข้อความนั้นเพื่ออัปเดต ปรับปรุง


5
โปรดวางรหัสของคุณลงในคำตอบโดยตรงเมื่อเทียบกับการใช้รูปภาพ
Tom Aranda

10

เปลี่ยนเวอร์ชั่น gradle ของคุณหรืออัปเดต

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

alt + ป้อนและเลือก "แทนที่ด้วยรุ่นที่ระบุ"


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 Project เก่าและคุณได้อัปเดต Android Studio สิ่งที่ฉันทำก็แค่ปิดโครงการและรันอีกครั้ง มันแก้ไขปัญหาสำหรับฉัน ไม่ได้เพิ่มการพึ่งพาใด ๆ หรืออะไรก็ตามที่อธิบายโดยคำตอบอื่น ๆ


0

ฉันทำสิ่งต่อไปนี้เพื่อให้ทำงานบน AS 3.5

  1. แอพ / 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' รวมถึง: ['* .jar']) การนำไปใช้งาน 'com.android.support:appcompat-v7:21.0.0' การนำไปใช้ 'com.squareup.picasso: picasso: 2.71828'}

  1. build.gradle

    buildscript {ที่เก็บ {jcenter () mavenCentral () maven {url ' https://maven.google.com/ ' ชื่อ 'Google'} google ()} การพึ่งพา {classpath 'com.android.tools.build:gradle:3.0 1 '}} allprojects {repositories {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.