No se pudo resolver la variable ‘${animal.sniffer.version}’ al migrar a AndroidX

6 minutos de lectura

avatar de usuario
nhoxbypass

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

ERROR: [TAG] No se pudo resolver la variable ‘${animal.sniffer.version}’

ERROR: [TAG] No se pudo resolver la variable ‘${junit.version}’

¡La limpieza completa y la reconstrucción no funcionaron! ¿Alguien sabe cómo arreglar esto?


gradle.properties

android.enableJetifier=true
android.useAndroidX=true

construir.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
}

aplicación/construir.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

    18 de agosto de 2018 a las 21:02

  • @ChadBingham No, sigue siendo el mismo error

    – nhoxbypass

    19 de agosto de 2018 a las 4:59

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

    – Nabster

    13 de septiembre de 2018 a las 7:51

  • Posible duplicado de stackoverflow.com/questions/52294319/…

    – Nabster

    13 de septiembre de 2018 a las 7:52

  • @Nabster oye, oye, mi pregunta se publicó hace un mes, mientras que esta pregunta se publicó hace 20 horas.

    – nhoxbypass

    13 de septiembre de 2018 a las 8:12

Arreglo esto con dos pasos

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

2) Construir -> Limpiar proyecto
ingrese la descripción de la imagen aquí

  • De alguna manera funcionó durante un par de reconstrucciones, pero ahora recibo el mismo error nuevamente …

    – Al Cabone

    25 de septiembre de 2018 a las 13:58

  • para mí, Clean Project ha sido suficiente

    – f4bo

    1 de febrero de 2019 a las 13:59

  • También Clean Project fue todo lo que necesité para mí. Gracias @f4bo por el consejo.

    – John Bentley

    19 de febrero de 2019 a las 1:19

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

    – azwar_akbar

    4 de julio de 2019 a las 3:21

Recibí el mismo error después de actualizar mi archivo build.gradle con 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

    24 de abril de 2019 a las 19:51

  • Sí, lo arreglé. Me encontré con el problema con el juego de adivinanzas del curso Udacity Kotlin

    – Aswin Mohan

    27 de abril de 2019 a las 5:42

  • ¿Podría explicar por qué este es el caso?

    – Riz-waan

    9 oct 2019 a las 23:59

agregando Compatibilidad con Java 8 a construir.gradle problema de archivo solucionado 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 creando una aplicación de TV y se pone roja en cualquier cosa relacionada con el soporte Leanback v17

    – Ralph Gabb

    10 de enero de 2019 a las 1:25

  • invalidar cachés y reiniciar android studio

    – Patel Dhaval

    10 de enero de 2019 a las 8:05

  • no lo es, pensé que tenías que usar el paquete androidx.

    – Ralph Gabb

    10/01/2019 a las 23:30

  • Supongo que agregar soporte para Java 8 obliga a Android Studio a invalidar sus cachés y, por lo tanto, logra el mismo resultado como efecto secundario… Hmmmm, está bien…

    – varun

    27 de abril de 2019 a las 10:43

Parece ser Planeo 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 haberlo habilitado en su gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

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

¡Espero que esto te ayudará!

avatar de usuario
bifetosino

Se solucionó yendo al directorio principal y escribiendo flutter clean

  • Genial, ¿qué pasa si no estás usando flutter;)

    –Kevin Galligan

    16 oct 2019 a las 15:24

  • @KevinGalligan Entonces usa Flutter;)

    – Sobrino de Stackoverflow

    5 de diciembre de 2019 a las 11:05

avatar de usuario
M. Usman Khan

La eliminación de testInstrumentationRunner funcionó para mí:

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

  • Genial, ¿qué pasa si no estás usando flutter;)

    –Kevin Galligan

    16 oct 2019 a las 15:24

  • @KevinGalligan Entonces usa Flutter;)

    – Sobrino de Stackoverflow

    5 de diciembre de 2019 a las 11:05

si estás usando Kotlinel problema aparecerá si no usa el kapt versión para cualquier procesador de anotaciones que utilice en el proyecto.
Como @Vince mencionó el caso con Glideesto podría pasar con Dagger2, Butterknifeetc.
Si estás usando ambos Java y Kotlin deberá mantener ambas dependencias, de la siguiente manera (fueron $glideVersion es una versión predefinida de Glide):

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

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

Si estás en un Kotlin único proyecto, el kapt la dependencia debe trabajar sola.

EDITAR

Otra cosa que debe tener en cuenta es si ya está usando Androidx. Androidx es un gran refactor, pero al migrar puede hacer que algunas de sus dependencias colapsen. Las bibliotecas convencionales ya están actualizadas a Androidxsin embargo, algunos de ellos no lo son e incluso no lo serán.
Si el problema no desaparece con la solución proporcionada arriba de esta edición, puede echar un vistazo a sus dependencias y asegurarse de que usen Androidx también.

EDITAR 2

Como mencionó @Ted, investigué y tiene razón kapt maneja java archivos también. kapt solo hará el truco, no es necesario mantener ambos kapt y annotationProcessor dependencias

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

    –Ted

    21 de marzo de 2019 a las 5:55

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad