VerrifyError mit Guice auf Android Maven-Projekt

8

Also versuche ich, Guice dazu zu bringen, in meinem Android-Maven-Projekt zu laufen und in einem 3rd-Party-Modul zu bündeln. Es läuft gut im normalen Junittest, der eine Testinjektion durchführt, aber auf der VM mit der unten angehängten Logcat-Nachricht fehlschlägt.

Was ich nicht verstehen kann ist, dass es zahlreiche Berichte gibt, in denen Guice auf Android gut funktioniert. Trotzdem scheint mein Code auf getBeanInfo () fehlzuschlagen, das vom Guice-Injektor aufgerufen wird. Es scheint, dass ich nicht der einzige bin, der diesen Fehler hat.

Gibt es eine Arbeit für den Android-Fehler "Kann die virtuelle Methode Java / Beans / PropertyDescriptor nicht aufgelöst werden?"

Ich habe also ein paar Fragen. Ist der Grund, warum Guice für mich nicht funktioniert, weil einige Funktionalität von meinem 3rd-Party-Modul aufgerufen wird, die überall fehlschlagen würde, aber nicht üblich ist? Gibt es einen Weg, um mehr Informationen aus Guice zu bekommen, was speziell die anstößige getBeanInfo () auslöst? Gibt es Arbeitsumgebungen? Welche Wege stehen mir zur weiteren Fehlersuche zur Verfügung.

Die Lösung muss mavenkompatibel sein, da Antworten auf eine ähnliche Frage zum Optimieren der Eclipse-Einstellungen für ähnliche Probleme nicht gelten können. Getting "verursacht durch: java.lang.VerifyError:" (Nicht, dass ich hier sowieso viel Kilometer hätte).

Ich denke, dass alle relevanten Dateien von dx vom android maven plugin verarbeitet wurden, da dependency: tree alle relevanten Projekte im Bereich "compile" zeigt, aber ich bin hier kein Experte.

%Vor%     
Daniel Gerson 05.03.2013, 08:49
quelle

1 Antwort

6

Der dalvik vm unterstützt keine zukunftsorientierte Programmierung, so dass Sie nicht die einfache JVM Guice verwenden können. Sie müssen die no_aop-Version verwenden.

Mit einem Maven Build verwenden

%Vor%

um das no_aop jar in deinen Build und deine apk zu bekommen.

Natürlich können Sie auch RoboGuice verwenden.

    
Manfred Moser 05.03.2013, 22:14
quelle