web-dev-qa-db-fra.com

L'exécution a échoué pour la tâche ': app: checkDebugDuplicateClasses'. Ionic4 Android

Je travaille actuellement sur une application ionic4, mais récemment, elle a cessé de fonctionner lors de la création de l'application sur un appareil Android reall après avoir ajouté https://ionicframework.com/docs/native/fcm plugin pour l'application.

Au début, il se plaignait de la clé de tissu, mais je n'ai jamais cherché à utiliser le tissu crashlytic sur mon application.

Les journaux d'erreurs:

* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
  Java.lang.RuntimeException: Duplicate class Android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)

  Go to the documentation to learn how to <a href="d.Android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 21s

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings
35 actionable tasks: 5 executed, 30 up-to-date
cmd: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.
> 1 exception was raised by workers:
  Java.lang.RuntimeException: Duplicate class Android.support.v4.app.INotificationSideChannel found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.app.INotificationSideChannel$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.IResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.IResultReceiver$Stub found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.IResultReceiver$Stub$Proxy found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.ResultReceiver$MyResultReceiver found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)
  Duplicate class Android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.Android.support:support-compat:27.1.1)

  Go to the documentation to learn how to <a href="d.Android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 21s
[ERROR] An error occurred while running subprocess cordova.

        cordova run Android exited with exit code 1.

        Re-running this command with the --verbose flag may provide more information.

Android/app/build.gradle

buildscript {
    repositories {
        google()
        jcenter()
        maven { url 'https://maven.fabric.io/public' } // Fabrics Maven repository from cordova-plugin-firebase
    }
    dependencies {

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.Android.tools.build:gradle:3.4.0+'
        classpath 'com.google.gms:google-services:4.2.0' // google-services dependency from cordova-plugin-firebase
        classpath 'io.fabric.tools:gradle:1.+' // fabric dependency from cordova-plugin-firebase
    }
}

allprojects {
    repositories {

        jcenter()
        google() // Google's Maven repository from cordova-plugin-firebase
    }
    //This replaces project.properties w.r.t. build settings
    project.ext {
      defaultBuildToolsVersion="28" //String
      defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4
      defaultTargetSdkVersion=28 //Integer - We ALWAYS target the latest by default
      defaultCompileSdkVersion=28 //Integer - We ALWAYS compile with the latest by default
    }
}

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

cordova-plugin-firebase/raihan-build.gradle

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
       classpath 'com.Android.tools.build:gradle:3.4.0+'
        classpath 'com.google.gms:google-services:4.2.0'
    }
}


dependencies {
    compile 'me.leolin:ShortcutBadger:1.1.4@aar'
    compile 'com.google.firebase:firebase-auth:+'
    compile('com.crashlytics.sdk.Android:crashlytics:2.9.1@aar') {
       transitive = true
    }
}
cdvPluginPostBuildExtras.add({
    // apply plugin: 'com.google.gms.google-services'
    apply plugin: 'io.fabric'
})

cordova-plugin-fcm-with-dependecy-updated/raihan-FCMPlugin.gradle

buildscript {
    repositories {
       google()
        jcenter()
        mavenLocal()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:3.4.0+'
        classpath 'com.google.gms:google-services:4.2.0'
    }
}
repositories {
    google()
    jcenter()
}
dependencies {
    compile 'com.google.firebase:firebase-core:16.0.8'
}
// apply plugin: 'com.google.gms.google-services'
// class must be used instead of id(string) to be able to apply plugin from non-root gradle file
// apply plugin: com.google.gms.googleservices.GoogleServicesPlugin

Android/project.properties

 target=Android-27
    Android.library.reference.1=CordovaLib
    Android.library.reference.2=app
    cordova.gradle.include.1=cordova-Android-support-gradle-release/raihan-cordova-Android-support-gradle-release.gradle
    cordova.system.library.1=com.squareup.okhttp3:okhttp-urlconnection:3.10.0
    cordova.system.library.2=com.Android.support:support-v4:24.1.1+
    cordova.system.library.3=com.soundcloud.Android:android-crop:1.0.0@aar
    cordova.system.library.4=com.google.firebase:firebase-core:16.0.8
    cordova.system.library.4=com.google.firebase:firebase-iid:17.1.1
    cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0
    cordova.gradle.include.2=cordova-plugin-fcm-with-dependecy-updated/raihan-FCMPlugin.gradle
    cordova.gradle.include.3=cordova-support-google-services/raihan-build.gradle
    cordova.system.library.6=com.google.firebase:firebase-auth:16.2.0
    cordova.system.library.6=com.google.firebase:firebase-perf:16.2.4
    cordova.system.library.7=com.Android.support:support-annotations:27.+
    cordova.system.library.8=com.Android.support:appcompat-v7:23+
    cordova.system.library.8=com.google.firebase:firebase-iid:17.1.1
    cordova.system.library.8=com.google.Android.gms:play-services-tagmanager:16.0.8
    cordova.system.library.8=com.google.firebase:firebase-config:16.4.0
    cordova.gradle.include.4=cordova-plugin-telerik-imagepicker/raihan-ignorelinterrors.gradle
    cordova.gradle.include.5=cordova-plugin-telerik-imagepicker/raihan-androidtarget.gradle
    cordova.gradle.include.6=cordova-Android-support-gradle-release/raihan-cordova-Android-support-gradle-release.gradle
    cordova.gradle.include.7=cordova-plugin-firebase/raihan-build.gradle

J'ai fourni les fichiers ci-dessus, faites-moi savoir si j'ai besoin de télécharger autre chose.

11
Abdu4

Votre projet (ou l'un de ses sous-projets) fait référence à une dépendance en utilisant le signe + plus à sa fin, comme com.google.firebase:firebase-auth:+, Ce qui signifie, utilisez une version supérieure lorsque cela est possible , et cette nouvelle version n'utilise plus les bibliothèques Android.support et utilise à la place androidx; pour résoudre ce problème, suivez les étapes ci-dessous.

Pas:

  1. Assurez-vous que la variable d'environnement Android_HOME Est définie, puis ouvrez une fenêtre de console (comme git-bash, car elle conserve toute la sortie de la commande), et cd dans votre Android répertoire (pour les projets Ionic il doit être platforms/Android).
  2. Tout d'abord, Liste toutes les dépendances en exécutant ci-dessous (dans git-bash):
    ./gradlew :app:dependencies
    
  3. Copiez le résultat dans votre éditeur de texte préféré et recherchez androidx.
  4. Si vous avez trouvé quelque chose, suivez les étapes ci-dessous, sinon vous avez terminé! (et vous n'avez pas besoin de répéter ces étapes).
  5. Faites défiler jusqu'à ce que vous voyiez -> à la fin de n'importe quelle ligne, comme par exemple 16.0.8 -> 19.0.0 ou + -> 19.0.0 =, ce qui signifie que la version a été résolue automatiquement (à quelque chose de plus élevé que celui spécifié par vous en raison de +).
  6. Donc, définissez la version manuellement:
    • Lorsque cela est possible, dans votre projet, recherchez et remplacez le signe + par une version spécifique.
    • Ou, forcez une version spécifique des dépendances comme mentionné ci-dessous.
  7. Enfin, répétez les étapes ci-dessus (mais au lieu de la première étape juste clear la console).

Pour Forcer une version spécifique des dépendances ajoutez à votre racine build.gradle Quelque chose comme ci-dessous (ce qui a fonctionné pour moi) mais modifiez et ajoutez vos propres règles (si celles-ci ne fonctionnent pas pour vous ):

allprojects {
  // ...
  configurations.all {
    resolutionStrategy {
      force 'com.google.firebase:firebase-common:17.0.0'
      force 'com.google.Android.gms:play-services-basement:16.2.0'
      force 'com.google.firebase:firebase-iid:16.0.0'
      force 'com.google.firebase:firebase-auth:17.0.0'
    }
  }
}
9
Top-Master

J'ai eu ce problème lorsque j'ai migré vers Androidx à l'aide de la fonction Android Studio mais à la première fois la migration n'a pas réussi, donc chaque fois que j'ai essayé de compiler, j'ai rencontré ce problème.

Pour résoudre ce problème, j'ai fait ce qui suit:

[1] Comment all androidx dependencies in the app bundle.gradle file
[2] Try the Migrate to Androidx. You can see this link in Refactor -> Migrate to Androidx. If the migration was successful, then
[3] Uncomment all androidx dependencies in the app bundle.gradle file

Vous pouvez nettoyer et reconstruire votre projet, espérons que cette erreur devrait disparaître.

1
leeCoder