2017-10-30 19 views
5

mam następujący błąd, gdy robi kompilacji uwolnienia Android Studio 3Błąd: json definiuje klasy, które są sprzeczne z klas teraz świadczonych przez Androida

Error: Błąd: json definiuje klasy, które są sprzeczne z klas teraz dostarczane przez Android . Rozwiązania obejmują znajdowanie nowszych wersji lub alternatywnych bibliotek, które nie mają tego samego problemu (na przykład dla httpclient używają HttpUrlConnection lub okhttp zamiast) lub przepakowania biblioteki przy użyciu czegoś takiego jak jarjar. [DuplicatePlatformClasses]

co następuje moje Zależności:

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

To mówiąc JSON, ale nie mogę znaleźć, który z powyższych zależnościach jest przyczyną problemu.

Oto co mam kiedy biegnę

gradlew assembleRelease 

Task :app:lintVitalRelease /Users/kruyvanna/Projects/key/HappyKey_Android2/app/build.gradle: Error: json defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]

objaśnienie kwestii typu „DuplicatePlatformClasses”: Istnieje wiele bibliotek, które powielają nie tylko funkcjonalność platformie Android, ale przy użyciu dokładnie takie same nazwy klas, jakie podano w Androidzie - na przykład klasy http apache. Może to doprowadzić do nieoczekiwanych awarii systemu .

Aby rozwiązać ten problem, trzeba albo znaleźć nowszą wersję biblioteki, które nie ma już tego problemu, lub przepakowania bibliotekę (i wszystkie jego zależnościami), używając coś jak narzędzie jarjar, albo wreszcie, przepisywanie kodu do korzystania z różnych interfejsów API (na przykład dla kodu hTTP, należy rozważyć użycie HttpURLConnection lub biblioteki takich jak okhttp.)

1 błędy, 0 ostrzeżenia

bŁĄD: Budowa niepowodzeniem z wyjątek.

  • Co poszło nie tak: Wykonanie nie powiodło się dla zadania ': app: lintVitalRelease'.

    Lint found fatal errors while assembling a release target.

    Aby kontynuować, albo rozwiązać problemy zidentyfikowane przez szarpie lub zmodyfikować skrypt kompilacji następująco: ... android { lintOptions { checkReleaseBuilds fałszywych // Lub, jeśli wolisz, możesz kontynuować w celu sprawdzenia błędów w wydaniu buduje, // ale nadal kompilacji nawet gdy nie zostaną znalezione błędy: abortOnError fałszywe } } ...

  • Spróbuj: Uruchom z opcją --stacktrace, aby uzyskać ślad stosu. Uruchom z opcją --info lub --debug, aby uzyskać więcej wyników dziennika.

  • Uzyskaj więcej pomocy w https://help.gradle.org

+0

co budować narzędzia używacie? – Lino

+0

Korzystam z Android Studio. Kliknięto "Kompiluj -> Wygeneruj podpisany plik APK" – vanna

+0

Czy rozwiązałeś problem? Mam do czynienia z tym samym problemem. – Hong

Odpowiedz

0

Przejdź do poleceń i patrzeć na drzewa zależności.To daje listę wszystkiego, że Twoja aplikacja używa:

./gradlew dependencies 
0

dodałem Zależności jeden po drugim i że ten jeden powoduje błąd

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

Naprawiłem go dodając:

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

do pliku gradle modułu, nie było konieczności usuwania zależności.

0

Dodaj ten w app/build.gradle

configurations { 
    all { 
     exclude module: 'commons-logging' 
    } 
} 
Powiązane problemy