web-dev-qa-db-fra.com

android-jetifier: "Impossible de résoudre tous les artefacts"; "Impossible de transformer l'artefact" sur un nouveau projet

J'ai un projet relativement nouveau que j'essaie de construire. Gradle se synchronise bien, mais chaque fois que j'essaye de construire, j'obtiens une erreur comme ceci:

Execution failed for task ':app:kaptGenerateStubsDebugKotlin'.
> Could not resolve all artifacts for configuration ':app:debugCompileClasspath'.
   > Failed to transform artifact 'common.jar (com.Android.tools:common:26.4.0)' to match attributes {artifactType=Android-classes, org.gradle.usage=Java-runtime-jars}.
      > Execution failed for JetifyTransform: C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.Android.tools\common\26.4.0\539939e284fba9fe343b890a6e21c9333767c886\common-26.4.0.jar.
         > Failed to transform 'C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.Android.tools\common\26.4.0\539939e284fba9fe343b890a6e21c9333767c886\common-26.4.0.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'Android.support.design.widget' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.)
   > Failed to transform artifact 'bundletool.jar (com.Android.tools.build:bundletool:0.7.2)' to match attributes {artifactType=Android-classes, org.gradle.usage=Java-runtime-jars}.
      > Execution failed for JetifyTransform: C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.Android.tools.build\bundletool\0.7.2\31f71b66edcbe41de0268e14c961a7799a03d42a\bundletool-0.7.2.jar.
         > Failed to transform 'C:\Users\Dave\.gradle\caches\modules-2\files-2.1\com.Android.tools.build\bundletool\0.7.2\31f71b66edcbe41de0268e14c961a7799a03d42a\bundletool-0.7.2.jar' using Jetifier. Reason: The given artifact contains a string literal with a package reference 'Android.support.design.widget' that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx.. (Run with --stacktrace for more details.)

J'ai commencé ce projet il y a seulement une semaine, et j'utilise la branche stable de Android Studio et j'utilise le plugin Gradle 3.5. Donc, quelqu'un a des idées pour résoudre ce problème?

Ce que j'ai essayé:

  • La désactivation de Jetifier dans gradle.properties m'a laissé des erreurs sur les anciennes et nouvelles dépendances de liaison de données.
  • Revenir au plugin Gradle 3.4.2 a donné la même erreur que ci-dessus.
  • Ajouter Android.jetifier.blacklist = pass à gradle.properties m'a laissé les mêmes erreurs que ci-dessus.
  • Ajouter Android.databinding.enableV2=true à gradle.properties m'a laissé les mêmes erreurs que ci-dessus.
  • Exécuter le refactoriseur "Migrer vers AndroidX" dans Android Studio m'a en fait laissé cet étrange aperçu du refactor: Why am I refactoring the library that I'm trying to refactor to?
  • Suppression de apply plugin: 'kotlin-kapt' de mon build.gradle au niveau de l'application m'a laissé les mêmes erreurs que ci-dessus.
  • Le nettoyage et la reconstruction ne fonctionnent pas.
  • L'invalidation et le redémarrage ne fonctionnent pas.

EDIT 1: Dépendances Gradle, pour les curieux ... Je ne pense pas que j'utilise quelque chose de particulièrement bizarre ici.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //Kotlin stuff
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.1.0'
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-Android:1.3.0"
    //Test tools
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    //UI
    implementation 'com.google.Android.material:material:1.1.0-alpha10'
    implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0-beta01'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'androidx.activity:activity:1.1.0-alpha03'
    //Lifecycle
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0'
    implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0-alpha04'
    //Moshi for serialization
    implementation 'com.squareup.moshi:moshi:1.8.0'
    implementation 'com.squareup.moshi:moshi-kotlin:1.8.0'
    //Retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.6.1'
    implementation 'com.squareup.retrofit2:converter-moshi:2.6.1'
    //Glide
    implementation 'com.github.bumptech.glide:glide:4.9.0'
    implementation 'com.github.bumptech.glide:okhttp3-integration:4.9.0'
    //Navigation
    implementation 'androidx.navigation:navigation-fragment-ktx:2.1.0'
    implementation 'androidx.navigation:navigation-common-ktx:2.1.0'
    implementation 'androidx.navigation:navigation-ui-ktx:2.1.0'
    implementation "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0"
    //Diff utils
    implementation group: 'io.github.Java-diff-utils', name: 'Java-diff-utils', version: '4.0'
    //Timber for logging
    implementation 'com.jakewharton.timber:timber:4.7.1'
}

Edit 2: Copié-collé mes dépendances Gradle dans un nouveau projet vide et a obtenu les mêmes erreurs. Serait-ce une de ces dépendances?

Edit 3: Commentant diverses bibliothèques de mon build.gradle (Moshi, Retrofit, Timber, Glide) n'a également eu aucun effet. Donc, je devrais probablement soumettre un rapport de bogue à Google. Jusque-là, quelle est la solution?

Édition 4: Avec les suggestions des commentaires, j'ai essayé de supprimer mon dossier .gradle et de revenir à une version antérieure de la bibliothèque de conception de matériaux. Les deux n'ont eu aucun effet, mais ce dernier a ajouté quelque chose d'intéressant au journal de construction:

> Transform artifact kotlin-build-common.jar (org.jetbrains.kotlin:kotlin-build-common:1.3.20) with DexingNoClasspathTransform
AGPBI: {"kind":"error","text":"Invoke-customs are only supported starting with Android O (--min-api 26)","sources":[{}],"tool":"D8"}
3
MowDownJoe

Dans mon cas, j'ai mis à jour Android studio, il a automatiquement mis à jour ma version gradle et la version a échoué, le retour de l'ancienne version a résolu le problème).

0
vinicius gati

Invoke-douane n'est pris en charge qu'à partir de Android O (--min-api 26).

Cela signifie que vous auriez besoin d'au moins:

compileSdkVersion 26
targetSdkVersion 26
0
Martin Zeitler