0

我正在尝试运行使用以下命令行(来自 adb shell)构建的 JAR 文件:

dalvikvm -cp /sdcard/MyJar.jar MyJar.main.Main

我的 Main 类只有一个方法main

public static void main(String[] args)
{
    // Connect to local db
    SQLiteDatabase db = SQLiteDatabase.openDatabase(DB_PATH, null, SQLiteDatabase.OPEN_READWRITE);
}

当我运行命令行时,它看起来像main函数运行,但随后出现以下异常:

java.lang.UnsatisfiedLinkError: native_get_int
    at android.os.SystemProperties.native_get_int(Native Method)
    at android.os.SystemProperties.getInt(SystemProperties.java:74)
    at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1846)
    at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
    at MyJar.main.Main.main(Main.java:146)
    at dalvik.system.NativeStart.main(Native Method)

我的猜测是我需要加载某种库来解决此链接错误,但我不知道它是哪个库(这似乎是一个基本的东西,可能应该由 dalvikvm 加载......)。

有任何想法吗 ?

4

1 回答 1

1

尝试运行app_process而不是dalvikvm.

Vogar让这种事情变得非常容易。从他们的 SVN 页面查看最新的 vogar,用 ant 构建它,然后在你的 Linux 桌面上运行它

~/Projects/vogar/bin/vogar --mode app_process ~/myapp/src/com/me/Main.java

Vogar 将构建您的.java,创建一个.dex文件,用于adb将其复制到您的设备,然后为您在设备上执行 VM。我们用它来开发 Dalvik。

于 2011-06-16T06:40:20.543 回答