私はにandroid.jarをJavaプロジェクトに含めるようにしました。ビルドパスからJREを削除してこのコードを実行します。ランタイム例外をスローします。どうして?Javaプロジェクトでandroid.jarを使用しています - RuntimeException Stub?
Exception in thread "main" java.lang.RuntimeException: Stub!
at android.content.ContentValues.<init>(ContentValues.java:5)
at JarTest.main(JarTest.java:5)
public class JarTest {
public static void main(final String[] args) {
final ContentValues values = new ContentValues();
values.put("test", "test");
System.out.println(values);
}
}
なぜAndroid環境でのみContentValuesが使用されますか?
他のJavaクラスがArrayListやVectorなどのように機能するのはなぜですか? – Emerald214
@ Emerald214 JREクラスはクラスパス内になければならず、それらはスタブであってはいけませんが、アンドロイド固有のクラスはスタブです。それらはスケルトンなので、Java IDEを使ってアプリケーションをコード化してコンパイルできますが、コードは実際には存在しません。おそらくJavaで作成されていないものもあります。 – aalku
誰でも実際のビルドがどこにあるのか知っていますか? –