Ich habe versucht, android.jar in das Java-Projekt aufzunehmen, JRE aus dem Build-Pfad zu entfernen und diesen Code auszuführen. Es wird Runtime-Ausnahme ausgelöst. Warum?
%Vor%Warum werden ContentValues nur in Android-Umgebungen verwendet?
Die android.jar im SDK enthält nur Stub-Implementierungen der SDK-Klassen, nicht die realen Implementierungen, die auf den Geräten (oder Emulatoren) gefunden werden. Das jar stellt nur die Klassenmetadaten bereit, damit Ihre Apps, die auf die SDK-Klassen verweisen, ordnungsgemäß erstellt werden.
Sie können kein Projekt erstellen, das auf die android.jar verweist, die außerhalb eines Android-Geräts ausgeführt wird.
android.jar enthält nur Stubs, genug, damit Sie Ihr Projekt erstellen können, wie @antlersoft erklärt hat.
Mit dem Robolectric-Projekt Ссылка können Sie Tests auf Ihrem Android-Code ausführen, ohne ein Gerät zu verwenden. Sie haben echte Builds auf Maven Ссылка
Ich habe den Großteil des Backend-Codes für Android erfolgreich ausgeführt, indem ich verwendet habe android-all Artefakt.
Kann in Ihrem speziellen Fall nicht helfen, da einige APIs immer noch außerhalb der Grenzen liegen, aber für die meisten anderen Fälle von java.lang.RuntimeException: Stub!
sollten die Artefakte von Robolectric helfen.