web-dev-qa-db-fra.com

Erreur: json définit les classes en conflit avec les classes maintenant fournies par Android

J'ai eu l'erreur suivante lors de la compilation d'une version sur Android Studio 3

Erreur: Erreur: json définit les classes en conflit avec les classes maintenant fournies par Android. Les solutions incluent la recherche de versions plus récentes ou de bibliothèques alternatives ne présentant pas le même problème (par exemple, pour httpclient, utilisez HttpUrlConnection ou okhttp à la place), ou le reconditionnement de la bibliothèque à l'aide de jarjar. [DuplicatePlatformClasses]

Ce qui suit est mes dépendances:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.Android.support', module: 'support-annotations'
    })
    compile 'com.Android.support:appcompat-v7:26.0.1'
    compile 'com.Android.support:support-v4:26.0.1'
    compile 'org.greenrobot:eventbus:3.0.0'
    compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
    compile 'com.evernote:Android-job:1.2.0'
    compile 'com.amitshekhar.Android:android-networking:1.0.0'
    compile 'com.facebook.stetho:stetho:1.5.0'
    compile "me.tatarka.redux:redux-core:0.10"
    compile "me.tatarka.redux:redux-Android:0.10"
    compile "me.tatarka.redux:redux-Android-lifecycle:0.10"
    compile "me.tatarka.redux:redux-thunk:0.10"
    annotationProcessor "org.immutables:value:2.5.5" // <-- for annotation processor
    provided "org.immutables:value:2.5.5" // for annotations
    provided "org.immutables:builder:2.5.5" // for annotations

    compile "me.tatarka.redux:redux-monitor:0.10"
    testCompile 'junit:junit:4.12'
}

Cela dit json mais je ne trouve pas laquelle des dépendances ci-dessus est la cause du problème.

Voici ce que je reçois quand je cours

gradlew assembleRelease

Tâche: application: lintVitalRelease /Users/kruyvanna/Projects/key/HappyKey_Android2/app/build.gradle: Erreur: json définit les classes en conflit avec les classes maintenant fournies par Android. Les solutions incluent la recherche de versions plus récentes ou de bibliothèques alternatives ne présentant pas le même problème (par exemple, pour httpclient, utilisez HttpUrlConnection ou okhttp à la place), ou le reconditionnement de la bibliothèque à l'aide de jarjar. [DuplicatePlatformClasses]

Explication sur les problèmes de type "DuplicatePlatformClasses": Il existe un certain nombre de bibliothèques qui ne dupliquent pas uniquement les fonctionnalités de la plate-forme Android, mais en utilisant exactement les mêmes noms de classe que ceux fourni dans Android - par exemple, les classes http Apache. Cela peut conduire à des accidents inattendus.

Pour résoudre ce problème, vous devez soit trouver une version plus récente de la bibliothèque qui n'a plus ce problème, ni de reconditionner la bibliothèque (et toutes ses dépendances .__) en utilisant quelque chose comme l'outil jarjar, ou enfin, en réécrivant le code pour utiliser différentes API (par exemple, pour le code http, envisagez d'utiliser HttpUrlConnection ou une bibliothèque telle que okhttp.)

1 erreurs, 0 avertissements

ECHEC: La construction a échoué avec une exception.

  • Ce qui s'est mal passé: L'exécution a échoué pour la tâche ': app: lintVitalRelease'.

    Lint a trouvé des erreurs fatales lors de l'assemblage d'une cible de publication.

    Pour continuer, corrigez les problèmes identifiés par lint ou modifiez votre script de génération comme suit: ... Android { lintOptions { checkReleaseBuilds false // Ou, si vous préférez, vous pouvez continuer à rechercher des erreurs dans les versions de version, // mais continue la construction même quand des erreurs sont trouvées: abortOnError false } } ...

  • Essayez: Exécutez-le avec l'option --stacktrace pour obtenir le suivi de la pile. Exécutez-la avec l'option --info ou --debug pour obtenir davantage de sorties de journal.

  • Obtenez plus d'aide sur https://help.gradle.org

12
vanna

Je l'ai corrigé en ajoutant:

configurations {
    all {
        exclude group: 'org.json', module: 'json'
    }
}

module de fichier, aucune suppression de dépendances n’était nécessaire. 

7
lxknvlk

Ajoutez ceci dans votre app/build.gradle

configurations {
    all {
        exclude module: 'commons-logging'
    }
}
2
Exigente05

Accédez à la ligne de commande et examinez l'arbre de dépendance. Cela vous donnera une liste de tout ce que votre application utilise:

./gradlew dependencies
1
codebrane

J'ai ajouté les dépendances une par une et j'ai trouvé celle-ci causant l'erreur

compile "me.tatarka.redux:redux-monitor:0.10"
0
vanna