我正在尝试使用android.graphics
中的Point类,但似乎所有方法都是存根。例如,行
Point p = new Point(1, 1);
导致java.lang.RuntimeException: Stub!
。如果我查看Point的字节码,我会看到一堆存根方法,例如:
// Method descriptor #17 (II)V
// Stack: 3, Locals: 3
public Point(int x, int y);
0 aload_0 [this]
1 invokespecial java.lang.Object() [1]
4 new java.lang.RuntimeException [2]
7 dup
8 ldc <String "Stub!"> [3]
10 invokespecial java.lang.RuntimeException(java.lang.String) [4]
13 athrow
Line numbers:
[pc: 0, line: 5]
Local variable table:
[pc: 0, pc: 14] local: this index: 0 type: android.graphics.Point
[pc: 0, pc: 14] local: x index: 1 type: int
[pc: 0, pc: 14] local: y index: 2 type: int
这是什么交易?当然他们没有发布一个100%存根的课程。
答案 0 :(得分:3)
我猜你在看android.jar
。那个JAR文件大多是存根。真正的实现是在设备上。
对于正确配置的Android项目,在模拟器或设备上运行,android.graphics.Point
的构造函数和其他所有内容都将使用真正的实现。您只能使用android.jar
作为编译目标,并且不应将其包含在生成的APK文件中。