Error al resolver la variable '$ {animal.sniffer.version}' al migrar a AndroidX


138

Estoy usando Android Studio 3.2 Beta5 para migrar mi proyecto a AndroidX . Cuando reconstruyo mi aplicación, recibí estos errores:

ERROR: [TAG] Error al resolver la variable '$ {animal.sniffer.version}'

ERROR: [TAG] Error al resolver la variable '$ {junit.version}'

¡La limpieza y reconstrucción completas no funcionaron! Alguien sabe cómo solucionar esto?


gradle.properties

android.enableJetifier=true
android.useAndroidX=true

build.gradle

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
        maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0-beta05'

        classpath 'com.google.gms:google-services:4.0.1'
        classpath "io.realm:realm-gradle-plugin:5.3.1"
        classpath 'io.fabric.tools:gradle:1.25.4'
        classpath 'com.google.firebase:firebase-plugins:1.1.5'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

app / build.gradle

apply plugin: 'com.android.application'
apply plugin: 'realm-android'
apply plugin: 'io.fabric'
apply plugin: 'com.google.firebase.firebase-perf'

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.0"
    defaultConfig {
        applicationId "com.iceteaviet.fastfoodfinder"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
        }
    }
    aaptOptions {
        cruncherEnabled = false
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    testImplementation 'junit:junit:4.12'

    implementation 'com.jakewharton:butterknife:9.0.0-SNAPSHOT'

    implementation 'androidx.appcompat:appcompat:1.0.0-rc01'
    implementation 'com.google.android.material:material:1.0.0-rc01'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0-rc01'
    implementation 'androidx.cardview:cardview:1.0.0-rc01'

    implementation 'com.google.maps.android:android-maps-utils:0.5'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    implementation 'com.google.android.gms:play-services-location:15.0.1'
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-database:16.0.1'
    implementation 'com.google.firebase:firebase-auth:16.0.1'
    implementation 'com.google.android.gms:play-services-auth:15.0.1'

    implementation 'com.github.bumptech.glide:glide:4.7.1'

    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.squareup.retrofit2:retrofit:2.4.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.4.0'

    implementation 'org.greenrobot:eventbus:3.1.1'

    implementation 'de.hdodenhof:circleimageview:2.2.0'

    implementation 'io.realm:realm-android-library:5.3.1'

    implementation 'com.facebook.android:facebook-android-sdk:4.34.0'

    implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
    implementation 'io.reactivex.rxjava2:rxjava:2.0.2'

    implementation 'androidx.multidex:multidex:2.0.0'

    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'
    implementation 'com.google.firebase:firebase-perf:16.0.0'

    implementation 'com.jakewharton.timber:timber:4.7.1'

    annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-SNAPSHOT'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
}

apply plugin: 'com.google.gms.google-services'

¿Algún progreso aquí?
Chad Bingham

@ChadBingham No, sigue siendo el mismo error
nhoxbypass

Finalmente encontré la solución, encuentra la respuesta aquí: stackoverflow.com/a/52308912/10224384
Nabster


55
@Nabster hey hey, mi pregunta se publicó hace un mes, mientras que esta pregunta se publicó hace 20 horas.
nhoxbypass

Respuestas:


108

Arreglo esto con dos pasos

1) Archivo -> Invalidar cachés / reiniciar ... ingrese la descripción de la imagen aquí

2) Construir -> Proyecto limpio ingrese la descripción de la imagen aquí


44
De alguna manera funcionó para un par de reconstrucciones, pero ahora
obtengo el

2
para mí Clean Project ha sido suficiente
f4bo

1
También Clean Project fue todo lo que se requirió para mí. Gracias @ f4bo por el consejo.
John Bentley

1
Funciona. Solo limpio proyecto. Esta respuesta debe establecerse como respuesta aceptada. @nhoxbypass
azwar_akbar

30

Recibí el mismo error después de actualizar mi archivo build.gradle con las dependencias de prueba de AndroidX . Resulta que olvidé eliminar la antigua dependencia de junit. Entonces, para mí, la solución fue simplemente eliminar la siguiente dependencia:

dependencies {
    ...
    testImplementation 'junit:junit:4.12'
}

Este fue el problema para mí.
Brill Pappin

Sí lo arregló. Me encontré con el problema con el juego de adivinanzas Udacity Kotlin
Aswin Mohan

¿Podría explicar por qué este es el caso?
Riz-waan

17

Agregar soporte de Java 8 al archivo build.gradle solucionó el problema para mí

android {
     ...

     //Add the following configuration in order to target Java 8.
     compileOptions {
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
}

Leanback no encontrado. Estoy construyendo una aplicación de TV y se vuelve rojo en todo lo relacionado con el respaldo leanback v17
ralphgabb

1
invalidar cachés y reiniciar Android Studio
Dhaval Patel

3
no, no, pensé que tenías que usar el paquete androidx.
ralphgabb

Supongo que agregar compatibilidad con Java 8 obliga a Android Studio a invalidar sus cachés y, por lo tanto, logra el mismo resultado que un efecto secundario ... Hmmmm, está bien ...
varun

14

Parece ser Glide el problema.

Tuve el mismo error y acabo de actualizar las dependencias de Glide a 4.8 y no hay errores de compilación.

Kotlin:

// Glide
def glide_version = "4.8.0"
implementation "com.github.bumptech.glide:glide:$glide_version"
kapt "com.github.bumptech.glide:compiler:$glide_version"

Java:

// Glide
def glide_version = "4.8.0"
implementation "com.github.bumptech.glide:glide:$glide_version"
annotationProcessor "com.github.bumptech.glide:compiler:$glide_version"

Asegúrese de haber habilitado en su gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

Fuente: https://github.com/bumptech/glide/issues/3124

¡Espero que esto te ayudará!


9
Este error también me aparece sin tener Glide como una dependencia
Fabian Streitel


4

Eliminar el testInstrumentationRunner funcionó para mí:

defaultConfig {
...
...
//        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

solución fantástica! Lo
arreglé

4

Si está usando Kotlin, el problema aparecerá si no usa la kaptversión para cualquier procesador de anotaciones que use en el proyecto.
Como @Vince mencionó el caso Glide, esto podría suceder con Dagger2, Butterknifeetc.
Si está utilizando ambos Javay Kotlinnecesitará mantener ambas dependencias, de la siguiente manera (donde $glideVersiones una versión predefinida de Glide):

implementation "com.github.bumptech.glide:glide:$glideVersion"

kapt "com.github.bumptech.glide:compiler:$glideVersion"

Si está en un Kotlinúnico proyecto, la kaptdependencia debería funcionar sola.

EDITAR
Otra cosa que debes tener en cuenta es si ya lo estás usando Androidx. Androidxes un gran refactorizador, pero al migrar puede hacer que algunas de sus dependencias colapsen. Las bibliotecas principales ya están actualizadas Androidx, sin embargo, algunas de ellas no lo están e incluso no lo estarán.
Si el problema no desaparece con mi solución proporcionada arriba de esta edición, puede echar un vistazo a sus dependencias y asegurarse de que Androidxtambién se usen .

EDITAR 2
Como mencionó @Ted, investigué nuevamente y tiene razón kapt, también maneja javaarchivos. kaptsolo hará el truco, no es necesario mantener ambos kapty annotationProcessordependencias.


1
kapt también puede manejar archivos java, por lo que no es necesario usarlos, solo kapt está bien.
Ted

3

Intenta eliminar esta línea:

maven { url "https://oss.sonatype.org/content/repositories/snapshots" }

de la sección buildscript / repositorios de su archivo build.gradle.

Cuando agregué esa línea, recibí el error que describiste. Cuando lo quité, ya no. Esa línea solo debe estar en la sección de todos los proyectos / repositorios.


1
Creo que Jake Wharton ya agregó soporte para AndroidX en la instantánea 9.0.0. Ver: github.com/JakeWharton/butterknife/issues/1280
nhoxbypass

2

Intente configurar android.enableJetifier = false en gradle.properties. Luego invalidar cachés / reiniciar ... en Android Studio


8
¡No se recomienda ya que podría haber bibliotecas de terceros que aún no se hayan actualizado a AndroidX! Como dice la documentación: "android.enableJetifier: cuando se establece en verdadero, el complemento de Android migra automáticamente las bibliotecas de terceros existentes para usar AndroidX reescribiendo sus archivos binarios. El indicador es falso de forma predeterminada si no se especifica". developer.android.com/jetpack/androidx
Gábor Horváth

1

La solución está en 4.2.0, use la versión superior de google gms jar.

Intenta cambiar:

classpath 'com.google.gms: google-services: 4.0.1'

por esta versión:

classpath 'com.google.gms: google-services: 4.2.0'

Espero que esto funcione...


1
Esto funcionó para mí junto con la actualización de dependencias.
glisu

1

Si está utilizando daga o navaja, asegúrese de actualizarlo a la última versión. O, si tiene otra biblioteca de inyección utilizada en su proyecto, puede intentar verificar si es compatible con androidx o no.

He encontrado el mismo error, el problema está en mi daga y navaja. Lo arreglé actualizándolo a la versión más reciente.


1

Versión de Android: 4.10.2

Resolví este problema con tres pasos simples: Primero agregué debajo de esto en pubspec.yml: (con dos espacios de ideación)

module:
  androidX: true 

Agregando estas dos líneas a continuación en gradle.properties, tengo esto en android / gradle.properties, en la carpeta del proyecto.

android.useAndroidX=true
android.enableJetifier=true

Y después de esto escribí con el terminal:

flutter clean

Quizás deba detener el dispositivo y volver a ejecutarlo.


0

Solucioné esto actualizando las dependencias de Firebase a la última.


-1

Lo arreglé actualizando el caché (en lugar de invalidarlo, lo que también borra el historial local):

  1. en el archivo gradle.properties, comente la línea org.gradle.caching = true.
  2. Limpiar, reconstruir.
  3. en el archivo gradle.properties, descomente la línea org.gradle.caching = true.
  4. Limpiar, reconstruir.

¡Eso es!


-1

Vaya al archivo y haga clic en Invalidar cachés y reinicie.

Después de que se reinicia, aumenta la versión mínima del SDK en el build.gradlearchivo de su aplicación .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.