0

, wenn ich einige Daten in einem jackson Objekt Mapper Wrapp möchte ich mit folgenden Meldung einen Laufzeitfehler bekam:Laufzeitfehler in meiner android app

07-07 17: 44: 59,049 19.642-20.156/com.app .teamchannel E/Android Runtime: FATAL AUSNAHME: SyncAdapterThread-1 java.lang.VerifyError: org/Codehaus/Jackson/map/ObjectMapper

erste Mal, dass ich diese Fehler aufgetreten war, nachdem ich google analytics in gradle enthalten wie:

compile 'com.google.android.gms:play-services-analytics:8.4.0' 

Kann mir bitte jemand helfen? Ich habe schon einige Stunden ohne Lösung verbracht.

komplette Ausnahme:

 
Could not find class 'org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector', referenced from method org.codehaus.jackson.map.ObjectMapper. 
Could not find class 'org.codehaus.jackson.map.deser.StdDeserializerProvider', referenced from method org.codehaus.jackson.map.ObjectMapper. 
Could not find class 'org.codehaus.jackson.util.TokenBuffer', referenced from method org.codehaus.jackson.map.ObjectMapper._convert 
Could not find class 'org.codehaus.jackson.map.deser.StdDeserializationContext', referenced from method org.codehaus.jackson.map.ObjectMapper._createDeserializationContext 
Could not find class 'org.codehaus.jackson.util.DefaultPrettyPrinter', referenced from method org.codehaus.jackson.map.ObjectMapper._defaultPrettyPrinter 
FATAL EXCEPTION: SyncAdapterThread-1 
java.lang.VerifyError: org/codehaus/jackson/map/ObjectMapper 
    at com.app.teamchannel.adapters.MySyncAdapter.onPerformSync(MySyncAdapter.java:2205) 
    at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:247) 

FATAL EXCEPTION: SyncAdapterThread-1 
java.lang.VerifyError: org/codehaus/jackson/map/ObjectMapper 
    at com.app.teamchannel.adapters.MySyncAdapter.onPerformSync(MySyncAdapter.java:2205) 
    at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:247) 
+0

Bitte fügen Sie den kompletten Stacktrace (von Logcat) zu Ihrer Frage – petey

+1

http://StackOverflow.com/q/100107/794088 könnte helfen – petey

+0

gibt es Erklärungen, wie diese Probleme verursacht werden, aber keine klare Lösung, um sie zu lösen. Was soll ich machen? –

Antwort

0

Schließlich fand ich eine Lösung. Es gab offensichtlich eine Paketnamen-Kollision, was dazu führte, dass zur Laufzeit die falschen Klassen genommen wurden.

Was ich tat:

Ich heruntergeladen beiden Gläser manuell

  • jackson-Core-asl-1.9.3
  • jackson-Mapper-asl-1.9.13

und änderte den Paketnamen von org.codehaus.jackson. ** in custom.org.codehaus.jackson. @ 1 für beide Bibliotheken. Um den Paketnamen zu ändern, habe ich ein Tool namens JarJar verwendet.

Sie finden Anweisungen zum Umpacken here.

Danach habe ich die umgepackten Gläser in libs Ordner, die Sie im App-Ordner (Android Studio: Projektansicht) finden. folgender Code muss in dem build.gradle auf App-Ebene in den Abhängigkeiten enthalten sein:

compile fileTree(include: ['*.jar'], dir: 'libs') 

So gradle auch Gläser in dem Ordner lib kompiliert.