[英]Which deployed jar contains android.os.SystemClock?
我正在尝试使用这些指令在dalvikvm上运行一个简单的命令行Java应用程序。 我以root用户身份运行,因此这不是权限问题。
这是应用程序代码:
import android.os.SystemClock;
/**
* Command that sends key events to the device, either by their keycode, or by
* desired character output.
*/
public class MWE {
public static void main(String[] args) {
System.out.println(SystemClock.uptimeMillis());
}
}
在dalvikvm上运行此命令时,出现以下错误消息:
java.lang.NoClassDefFoundError: android.os.SystemClock
at MWE.main(MWE.java:8)
at dalvik.system.NativeStart.main(Native Method)
这是我运行的命令,该命令适用于上述应用程序的普通Hello World版本。
/system/bin/dalvikvm -Xbootclasspath:/system/framework/core.jar -classpath /data/local/tmp/MWE.jar MWE
我目前的结论是android.os.SystemClock
不在core.jar
内部。 我已经推测性地尝试添加framework.jar
和framework-res.jar
,但是我遇到了同样的错误。
/system/framework
下的哪个jar包含android.os.SystemClock
类? 在我的设备(HTC One M8)上,android.os.SystemClock位于/system/framework/framework3.jar中。 我相信,由于classes.dex的方法限制为65k,框架被分为多个jar。 android.os.SystemClock可能在不同的android设备上的不同jar中。
我用来查找android.os.SystemClock的位置的步骤:
adb pull /system/framework/<filename>.jar
然后,我使用DexToJar将classes.dex反编译为一个jar,并使用JD-GUI查看该jar中的软件包(您可以将其作为ZIP文件打开,不需要jd-gui,仅用于Windows)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.