RoboGuice 3.0 NeinClassDefFoundError: roboguice.inject.ContextScopedRoboInjector

9

Dies wird nicht immer gesehen, aber auf API 14 und 19 gesehen.

Unten ist der Stacktrace

%Vor%

Mit RoboGuice 3.0 wird bereits ein Problem protokolliert: Ссылка

Aber keine Antwort und wir sind derzeit blockiert.

Problem behoben

Ich habe das MultiDex-Dokument dieses Mal genauer umschrieben und meine AndroidManifest.xml auf weniger als die, die ich hatte, aktualisiert verpasst

%Vor%     
rsakhale 13.01.2016, 04:43
quelle

2 Antworten

3

Von dem git-Link, den Sie in Antwort

gepostet haben

Erlangung dieses Fehlers auf API Level 14- und API Level 19-Geräten. Beim Versuch, nach der Klasse zu suchen, sehe ich, dass diese Klasse verfügbar ist, aber immer noch NoClassDefFoundException, was seltsam ist. Dies geschieht nur in bestimmten Fällen nicht immer

Dieser Fehler tritt aufgrund von MultiDexApplication auf. Ich bin mit dieser Art von Problem mit einer anderen Bibliothek konfrontiert, die nicht dieselbe Bibliothek, sondern eine andere Bibliothek ist. Es wird ein Fehler in der RoboGuice-Bibliothek auftreten, da die Initialisierung der App gestartet wird, wobei dex (in dem der RoboGuice-Bibliothekscode in dex konvertiert wird) nicht festgelegt (installiert) wird.

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

unter den Änderungen, die in build.gradle file

erforderlich sind %Vor%

Gesamte build.gradle

%Vor%

Wenn Ihre App die Klasse extends verwendet, können Sie die Methode attachBaseContext () überschreiben und MultiDex.install (this) aufrufen, um multidex zu aktivieren. Um den Kontext mehrerer Dateikontexte zu installieren , verwenden Sie die Anwendungsklasse, die MultiDexApplication erweitern sollte.

%Vor%

Lass es mich wissen, wenn überhaupt.

    
user1140237 23.01.2016 07:34
quelle
1

Ich schlage vor, folgendes zu tun -

  1. Überprüfen Sie, ob es sich um ein Problem mit 65.000 Methodenlimits (Multidex) handelt, indem Sie versuchen, einen Releasebuild auszuführen, bei dem Proguard nicht verwendete Funktionen entfernt und die Anzahl der Funktionen im Dex verringert.

  2. java.lang.NoClassDefFoundError kann auch verursacht werden, wenn während der Initialisierung statischer Variablen / Objekte Ausnahmen ausgelöst werden. Überprüfen Sie, ob Sie eine / aus einer RoboGuice-Klasse erben oder einen Initialisierungscode mit statischen Objekten oder Codeblöcken verwenden. Das Problem kann von dort kommen.

Sehen Sie sich auch RoboGuice 3.0 NoClassDefFoundError: AnnotationDatabaseImpl an , kann es Ihnen helfen (obwohl der Fehler, den der Benutzer bekommt, über eine andere Klasse ist, ist die Initialisierung die eines statischen Objekts).

viel Glück.

    
FunkSoulBrother 20.01.2016 11:09
quelle