簡體   English   中英

如何將odex文件添加到dalvikvm的類路徑中?

[英]How do I add `odex` files to the classpath for dalvikvm?

這個問題是我先前問題的后續。

這是該問題的相同示例。

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());
    }
}

/system/framework目錄中瀏覽后,我發現類android.os.SystemClock是在手機的framework.odex定義的。 我自然嘗試了以下兩個命令來嘗試訪問它。

/system/bin/dalvikvm -Xbootclasspath:/system/framework/core.jar -classpath /system/framework/framework.odex:/data/local/tmp/MWE.jar MWE
/system/bin/dalvikvm -Xbootclasspath:/system/framework/core.jar:/system/framework/framework.odex -classpath /data/local/tmp/MWE.jar MWE

但是,它們兩個都導致出現相同的錯誤消息,即無法找到類定義。

如何將此類odex文件添加到odex的類路徑中?

您是否嘗試過:

/system/bin/dalvikvm -classpath /data/local/tmp/MWE.jar MWE

據我所知,在這種情況下,它將從BOOTCLASSPATH環境變量中拉入引導類路徑,該環境變量應該已經包含core.jar和framework.jar。

但是,我懷疑這實際上會導致UnsatisfiedLinkError異常,因為將不會加載在SystemClock中實現某些本機方法的JNI庫。

在這種情況下,可以使用一個方便的實用程序類來加載本機庫。

dalvikvm -classpath /data/local/tmp/MWE.jar com.android.internal.util.WithFramework MWE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM