it-swarm.com.de

Fehler: json definiert Klassen, die mit den jetzt von Android bereitgestellten Klassen in Konflikt stehen

Ich habe die folgende Fehlermeldung erhalten, wenn ich einen Release-Build auf Android Studio 3 durchführe

Fehler: Fehler: json definiert Klassen, die mit jetzt von Android bereitgestellten Klassen in Konflikt stehen. Zu den Lösungen zählen das Auffinden neuerer Versionen oder alternativer Bibliotheken, die nicht das gleiche Problem haben (beispielsweise für httpclient stattdessen HttpUrlConnection oder okhttp verwenden) oder die Bibliothek mit etwas wie jarjar neu packen. [DuplicatePlatformClasses]

Folgendes ist meine Abhängigkeiten:

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'
}

Es heißt json, aber ich kann nicht herausfinden, welche der oben genannten Abhängigkeiten das Problem verursacht.

Folgendes bekomme ich, wenn ich renne

gradlew assembleRelease

Aufgabe: App: lintVitalRelease /Users/kruyvanna/Projects/key/HappyKey_Android2/app/build.gradle: Fehler: json definiert Klassen, die mit von Android jetzt bereitgestellten Klassen in Konflikt stehen. Zu den Lösungen zählen das Auffinden neuerer Versionen oder alternativer Bibliotheken, die nicht das gleiche Problem haben (beispielsweise für httpclient stattdessen HttpUrlConnection oder okhttp verwenden) oder die Bibliothek mit etwas wie jarjar neu packen. [DuplicatePlatformClasses]

Erklärung für Probleme des Typs "DuplicatePlatformClasses": Es gibt eine Reihe von Bibliotheken, die nicht nur die Funktionalität von .__ duplizieren. auf der Android-Plattform, wobei jedoch dieselben Klassennamen verwendet werden wie die in Android bereitgestellt - zum Beispiel die Apache http-Klassen. Dies kann führen zu unerwarteten Abstürzen.

Um dieses Problem zu lösen, müssen Sie entweder eine neuere Version der Bibliothek suchen, die hat dieses Problem nicht mehr, oder die Bibliothek (und alle ihre Abhängigkeiten) mit etwas wie dem Jarjar-Tool neu zu packen oder schließlich .__ umzuschreiben. den Code für die Verwendung verschiedener APIs (z. B. für http-Code die Verwendung von HttpUrlConnection oder einer Bibliothek wie okhttp.)

1 Fehler, 0 Warnungen

FEHLER: Die Erstellung ist mit einer Ausnahme fehlgeschlagen.

  • Was ist schiefgegangen: Ausführung fehlgeschlagen für Task ': app: lintVitalRelease'.

    Lint hat beim Zusammenstellen eines Freigabeziels schwerwiegende Fehler gefunden.

    Um fortzufahren, beheben Sie entweder die durch Flusen identifizierten Probleme oder ändern Sie Ihr Build-Skript wie folgt: ... Android { lintOptions { checkReleaseBuilds false // Wenn Sie möchten, können Sie auch weiterhin nach Fehlern in den Release-Builds suchen. // aber fahren Sie mit dem Build fort, auch wenn Fehler gefunden werden: abortOnError false } } ...

  • Versuchen Sie: Führen Sie die Option mit der Option --stacktrace aus, um die Stack-Ablaufverfolgung abzurufen. Führen Sie die Option --info oder --debug aus, um weitere Protokollausgaben zu erhalten.

  • Weitere Hilfe erhalten Sie unter https://help.gradle.org

12
vanna

Ich habe das Problem behoben, indem ich Folgendes hinzugefügt habe:

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

in der Modul-Gradle-Datei waren keine Abhängigkeiten entfernt worden. 

7
lxknvlk

Fügen Sie dies in Ihrem app/build.gradle hinzu.

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

Gehen Sie zur Befehlszeile und sehen Sie sich den Abhängigkeitsbaum an. Dadurch erhalten Sie eine Liste mit allem, was Ihre App verwendet:

./gradlew dependencies
1
codebrane

Ich fügte nach und nach Abhängigkeiten hinzu und stellte fest, dass dieser Fehler auftrat

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