2014-11-15 81 views
0

我正嘗試使用these instructions在dalvikvm上運行一個簡單的命令行java應用程序。我以root身份運行,因此它不是權限問題。哪個部署jar包含android.os.SystemClock?

這裏是應用程序代碼:

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.jarframework-res.jar,但我得到了同樣的錯誤。

  1. 哪個罐子在/system/framework下擁有類android.os.SystemClock
  2. 一般來說,有沒有一個地方可以爲Android中部署的jar提供類到jar的映射?
+0

它應該在android - *。jar? – SMA

+0

Android.jar在我的手機上存在多個部分。那個罐子只在電腦上一片。 – merlin2011

+0

它存在於你的類路徑中嗎?我假設沒有。 – SMA

回答

1

在我的設備(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 

然後我反編譯classes.dex與DexToJar一個罐子,用JD-GUI看罐子裏面的包(你可以只開啓它作爲一個ZIP文件,jd-gui不是必需的,僅適用於windows)

+0

我在Galaxy S4上,該類似乎只在'framework.odex'中。有關如何將odex放入類路徑的任何想法? – merlin2011

相關問題