我正在尝试运行我使用以下命令行(来自adb shell)构建的JAR文件:
dalvikvm -cp /sdcard/MyJar.jar MyJar.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加载......)。 / p>
有什么想法吗?
答案 0 :(得分: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。