Непідтримуваний метод: 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'Клацніть це, оскільки мінімальна версія градації є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'.
Праги

Це, звичайно, трохи клопоту.
Скотт Фрейлі

13
@ACAkgul Так, ми оновлюємо наші програми все рідше, кожен раз, коли ми робимо це велика робота, просте виправлення помилок означає, що нам доведеться оновлювати своє середовище і витрачати години (якщо не дні) на перехід на нові API та оточення. Люди висміюють Microsoft, тепер я думаю, що MS - це ангели!
альбаттран

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 / обгортка / gradle-wrapper.properties

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

Це працювало для мене. Слід позначити як правильну відповідь.
Тіна Дж

1
@srs, поясніть, будь ласка, чому в залежності блокують gradle версії 3.0.1, а у файлі gradle-wrapper 4.1? Чи не повинна це бути однакова версія?
Джонні П'ять

1
Цікаво, але не вдалося цього зробити в дійсно старому проекті. Тоді я просто змінив версію gradle не на 3.0.1, а на 2.2.1, і вона спрацювала.
Джонні П'ять

48

Спочатку відкрийте модуль програми файл build.gradle додатка .

Перевірте класний шлях залежно від вашого проекту. Якщо не змінити версію цього класного шляху.

від:

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

До:

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

або вищої версії відповідно до вашого студії андроїд-студії.

Якщо проблема все-таки залишається, то змініть buildToolsVersion :

Від:

buildToolsVersion '21.0.0'

До:

buildToolsVersion '25.0.0'

потім натисніть «Спробуйте ще раз», і gradle автоматично синхронізується. Це вирішить це.


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 'com.android.tools.build :gradle:2.3.2'

    Зображення після додавання класного шляху

  2. Нове повідомлення, яке вказує на оновлення версії інструменту збирання, просто натисніть це повідомлення, щоб оновити. Оновлення


5
Будь ласка, вставте свій код безпосередньо у відповідь на відміну від використання зображень.
Том Аранда

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 Project старий, і ви оновили 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'
        }
    }

    }

залежності ({file fileTree (dir: 'libs'), включати: ['* .jar']) реалізація 'com.android.support:appcompat-v7:21.0.0' імплементація 'com.squareup.picasso: picasso: 2.71828'}

  1. build.gradle

    buildscript {repositories {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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.