java.lang.NoClassDefFoundError im Android Studio nachrüsten2.Utils

8

Ich verwende Retrofit, um die serverseitigen Daten von Mobile zu verarbeiten. Nach der Implementierung der Nachrüstung erhalte ich die folgende Ausnahme.

Was mache ich falsch?

  

com.name.App_idea W / System.err: java.lang.NoClassDefFoundError:   Retrofit2.Utils       bei retrofit2.Retrofit $ Builder.baseUrl (Retrofit.java:434)       unter com.name.App_idea.utils.Idea.onCreate (Idea.java:103)       bei android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1007)       bei android.app.ActivityThread.handleBindApplication (ActivityThread.java:4541)       bei android.app.ActivityThread.access $ 1500 (ActivityThread.java:151)       bei android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1381)       bei android.os.Handler.dispatchMessage (Handler.java:110)       bei android.os.Looper.loop (Looper.java:193)       bei android.app.ActivityThread.main (ActivityThread.java:5292)       at java.lang.reflect.Method.invokeNative (Native Methode)       bei java.lang.reflect.Method.invoke (Methode.java:515)       bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:824)       bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:640)       bei dalvik.system.NativeStart.main (Native Methode)

Retrofit Init

%Vor%

Gradle-Datei

%Vor%

Anwendungsklasse

%Vor%     
Pandiyan Muthu 05.05.2016, 08:21
quelle

10 Antworten

2

Es ist Gradle bulid configure issue Ich habe auch das gleiche Problem Manchmal

In Gradle verwenden Sie

%Vor%

Enire Google Playservice Lib können Sie festlegen, welche Bibliotheken in Ihrem Projekt verwendet werden

Beispiel

%Vor%

Verweisen Sie auf diese URL Ссылка

    
Prasanth S 12.05.2016, 08:07
quelle
11

Dieser Fehler tritt aufgrund von MultiDexApplication auf. Ich bin mit dieser Art von Problemen konfrontiert mit einer anderen Bibliothek nicht die gleiche Bibliothek, sondern eine andere Bibliothek.Es wird Fehler der Retrofit-Bibliothek, weil ihre Initialisierung der App starten, wo Dex (in dem Ihre Retrofit-Bibliothek Code in Dex konvertiert wird) Datei ist nicht zu setzen (installieren) / p>

Um das zu beheben, müssen Sie mit Multiple Dex-Datei umgehen. mit Hilfe der Anwendung build.gradle & amp; Anwendungsklasse

unter den Änderungen, die in build.gradle file

erforderlich sind %Vor%

gesamt build.gradle

%Vor%

Wenn Ihre Anwendung die Anwendungsklasse erweitert, können Sie die attachBaseContext() -Methode überschreiben und MultiDex.install(this) aufrufen, um Multidex zu aktivieren. Installieren Sie den Kontext für mehrere Dateien mithilfe der Anwendungsklasse, die [MultiDexApplication][2]

erweitern soll %Vor%

Vorschlag

Selektive Kompilierung von APIs in Ihre ausführbare Datei

Verwenden Sie nicht den gesamten Google Play-Dienst, sondern verwenden Sie nur die erforderliche Bibliothek. Ab Version 6.5 können Sie die Google Play-Dienst-APIs stattdessen selektiv in Ihre App kompilieren. Wenn Sie beispielsweise nur die Google Fit- und Android Wear-APIs einschließen möchten, ersetzen Sie die folgende Zeile in Ihrer Datei build.gradle:

%Vor%

mit diesen Zeilen:

%Vor%

Mit dem Hinweis auf meine Antwort Ссылка

    
user1140237 12.05.2016 06:39
quelle
4

Ich war mit diesem Fehler unter Lollipop-Geräten konfrontiert.

Ich habe multiDexEnabled true verwendet.

Nach dem Hinzufügen dieses Codes zu der Klasse, die die Application-Klasse erweitert, wurde mein Problem gelöst.

%Vor%

Referenz: Ссылка

    
Muhammad Ahmed Ali Baig 14.04.2017 06:41
quelle
2

Hast du die folgenden Proguard-Regeln hinzugefügt?

%Vor%

Dokumentation: Ссылка

    
Francesco verheye 12.05.2016 05:55
quelle
1

Sie sollten Utils-Klasse wie folgt machen:

%Vor%

Erstellen Sie eine solche Schnittstelle für die HTTP-Methoden:

%Vor%

Gehen Sie in Ihrer Aktivität, in der Sie die Webservices aufrufen, folgendermaßen vor:

%Vor%     
Lampard 05.05.2016 10:34
quelle
0
%Vor%

REWRITE NACH

%Vor%     
alanabraham 05.05.2016 08:50
quelle
0

Mit diesen vielen Bibliothekssätteln muss es die berüchtigte 64k-Methode überschritten haben. Sie müssen Ihre App für Multidex aktivieren. Hier ist, wie Sie es tun. Ссылка

    
Ashish Rawat 12.05.2016 05:55
quelle
0

Verwenden Sie die gleiche lib-Version für die Basis-Retrofit-Bibliothek und die Konverter.

%Vor%     
SpaceBison 12.05.2016 06:02
quelle
0

Ich stieß auf ähnliche Probleme wie diese, es ist wahrscheinlich ein Abhängigkeitsproblem

%Vor%

enthält bereits okhttp, wie hier zu sehen Ссылка , entfernen Sie also das okhttp aus der Abhängigkeitsliste synchronisieren und erneut versuchen.

    
kareem adel 16.05.2016 11:30
quelle
0

Ich habe diesen Fehler gefunden. Und nach vielen suchen, gefunden, dass ich vergessen Internet-Permission zu manifestieren.

Nach dem Hinzufügen dieser Berechtigung wurde mein Fehler behoben.

    
Tavousi 15.11.2016 07:30
quelle

Tags und Links