Método no compatible: BaseConfig.getApplicationIdSuffix ()

248

Así que estoy leyendo Android 6 para programadores: un enfoque basado en aplicaciones y los dos primeros ejemplos de aplicaciones No tuve problemas con los ejemplos, esta vez el ejemplo de FlagQuiz cuando se cargó en Android Studio 3.0 Canary-3 obtengo este error que no me deja construir el proyecto:

Error: Método no compatible: BaseConfig.getApplicationIdSuffix (). La versión de Gradle a la que se conecta no es compatible con ese método. Para resolver el problema, puede cambiar / actualizar la versión de destino de Gradle a la que se conecta. Alternativamente, puede ignorar esta excepción y leer otra información del modelo.

Puede descargar la fuente del sitio del libro aquí para probar con la misma base de código que estoy probando.

exts
fuente

Respuestas:

643

Muy bien, descubrí cómo solucionar este problema.

  • Abra build.gradle y cambie la versión de gradle a la versión recomendada:
    classpath 'com.android.tools.build:gradle:1.3.0'a
    classpath 'com.android.tools.build:gradle:2.3.2'
  • Golpear 'Try Again'
  • En el cuadro de mensajes dirá 'Fix Gradle Wrapper and re-import project'Haz clic en eso, ya que la versión mínima de gradle es3.3
  • Aparecerá un nuevo error y dirá 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
  • Puede aparecer una ventana emergente que dice Android Gradle Plugin Update recommended, solo actualice desde allí.

Ahora el proyecto debería ser ejecutable ahora en cualquiera de sus dispositivos virtuales Android.

exts
fuente
137
Realmente no entiendo por qué Google hace las cosas más difíciles.
ACAkgul
1
@ AhmetCanAkgül ¡No lo hace!
Masquerade0097
1
en mi caso classpath 'com.android.tools.build:gradle:2.3.2' funcionando.
Prags
Ciertamente es una tarea difícil.
Scott Fraley
13
@ACAkgul Sí, estamos actualizando nuestras aplicaciones con menos frecuencia ahora, cada vez que hacemos esto es una tarea masiva, una simple corrección de errores significa que tenemos que actualizar nuestro entorno y pasar horas (si no días) para cambiar a nuevas API y entorno. La gente se burla de Microsoft, ¡ahora creo que los EM son ángeles!
Albattran
91

Para Android Studio 3, necesito actualizar dos archivos para corregir el error:

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
fuente
Esto funcionó para mí. Debe marcarse como respuesta correcta.
Tina J
1
@srs, explique por qué en las dependencias bloquean la versión 3.0.1 de Gradle, pero en el archivo 4.1 de Gradle-wrapper. ¿No debería ser la misma versión?
Johnny Five,
1
Interesante, pero no podría hacer esto en un proyecto realmente antiguo. Luego simplemente cambié la versión de Gradle no a 3.0.1 sino a 2.2.1 y funcionó.
Johnny Five,
48

Primero, abra el archivo build.gradle de su módulo de aplicación .

Verifique el classpath de acuerdo con la dependencia de su proyecto. Si no, cambie la versión de este classpath.

de:

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

A:

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

o una versión superior de acuerdo con tu gradle of android studio.

Si sigue siendo un problema, cambie buildToolsVersion :

De:

buildToolsVersion '21.0.0'

A:

buildToolsVersion '25.0.0'

luego presione 'Intentar de nuevo' y gradle se sincronizará automáticamente. Esto lo resolverá.

amit pandya
fuente
16

En mi caso, Android Studio 3.0.1, solucioné el problema con los siguientes dos pasos.

Paso 1: Cambiar la versión del complemento Gradle en el nivel de proyecto build.gradle

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

Paso 2: cambiar la versión de Gradle

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

También enfrenté el mismo problema y obtuve una solución muy similar:

  1. Cambiar el classpath a classpath 'com.android.tools.build:gradle:2.3.2'

    Imagen después de agregar el classpath

  2. Un nuevo mensaje que indica que se debe actualizar la versión de la herramienta de compilación, así que solo haga clic en ese mensaje para actualizar. Actualizar

BR Girish
fuente
55
Pegue su código directamente en la respuesta en lugar de usar imágenes.
Tom Aranda el
10

Cambie su versión de gradle o actualícela

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

alt + enter y elija "reemplazar con una versión específica".

Exel Staderlin
fuente
5

Puede hacer esto cambiando el archivo 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
fuente
0

Si este () Método no admitido: BaseConfig.getApplicationIdSuffix Android Project es antiguo y ha actualizado Android Studio, lo que hice fue simplemente CERRAR PROYECTO y ejecutarlo nuevamente. Resolvió el problema para mí. No agregó ninguna dependencia o lo que sea descrito por otras respuestas.

itzo
fuente
0

Hice lo siguiente para hacer que esto se ejecute en AS 3.5

  1. app / build.gradle

    aplique el complemento: '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'
        }
    }

    }

dependencias {implementación fileTree (dir: 'libs', incluye: ['* .jar']) implementación 'com.android.support:appcompat-v7:21.0.0' implementación 'com.squareup.picasso: picasso: 2.71828'}

  1. build.gradle

    buildscript {repositorios {jcenter () mavenCentral () maven {url ' https://maven.google.com/ ' name 'Google'} google ()} dependencias {classpath 'com.android.tools.build:gradle:3.0. 1 '}} todos los proyectos {repositorios {jcenter () google ()}}

  2. gradle-wrapper.properties

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

Germán
fuente