2016-04-20 14 views
1

Mir läuft ein seltsames Problem in Android Studio. Ich benutze auch das neueste JDK.Wie verwendet man javax.xml.transform.stax in Android Studio?

  • javax.xml.stream
  • javax.xml.transform.stax

Sie sind beide nicht zur Verfügung, und ich weiß nicht, warum: Ich kann nicht die folgenden scheinen zu importieren. In einem nicht-androiden Projekt kann ich diese importieren. Irgendwelche Anhaltspunkte, warum diese bei Android fehlen?

Wenn nicht, ist die einfache Lösung, dass ich diese Abhängigkeiten von Maven hinzugefügt. Aber nach dem Laufen erhalte ich diese Fehlermeldung: (. Java * oder javax. *)

„schlecht beraten oder verwechselt Verwendung eines Kern Klasse, wenn nicht eine Kernbibliothek Aufbau

Antwort

0

Android doesn‘. Verwenden Sie dasselbe Java JDK wie für eine Desktop- oder Server-App, es verwendet eine eigene Implementierung des JDK, die die -Hierarchie hinzufügt, aber einige Pakete auslässt, die im Standard-JDK enthalten sind, insbesondere in den Java-Erweiterungen javax.*. Leider sind javax.xml.stream und javax.xml.transform.stax zu den Dingen, die sie nicht implementiert haben.Außerdem erlaubt Ihnen die Android-Laufzeit keine java.* oderzu laden 210 Klassen aus einer externen JAR-Datei aus Sicherheitsgründen **. This answer kann die Situation ein wenig besser beschreiben.

Ihre besten Wetten sind wahrscheinlich: 1) Verwenden Sie eine andere Drittanbieter-Bibliothek speziell für Android, wie SimpleXML; 2) suche nach einer neu gepackten Version der Bibliotheken, wie this JAXB effort; oder 3) benutzen Sie ein Werkzeug wie Jar Jar Links, um das Umpacken für Sie durchzuführen.

Siehe auch diese hervorragende guide zum Parsen von JSON und XML in Android.

** Hinweis: Ich kann keine Dokumentation von Google finden, um dies zu belegen; es ist nur eine häufig wiederholte "Tatsache". Wenn jemand auf eine verbindliche Aussage über Androids Umgang mit Drittanbieter-Klassen java[x].* zeigen kann, bitte Kommentar mit einem Link, oder bearbeiten Sie diese Antwort.

Verwandte Themen