如何 运行 具有超过 1 个 DEX 文件的 DalvikVM 应用程序?

How to run a DalvikVM application with more than 1 DEX files?

我刚刚将一个自定义的 Minecraft 服务器(控制台中的 PC 服务器 运行ning)编译成一个名为 test.zip 的 .zip 文件,其中包含 classes.dexclasses2.dex , 使用 sdk-dx 工具。

我想 运行 使用 "dalvikvm" shell 命令的应用程序,但它一直抛出 java.lang.NoClassDefFoundError: test.server.Start

.zip文件的路径为/sdcard/Test/test.zip,原主class在classes.dex中为test.server.Start。 (我认为它没有被修改,因为我尝试了 dex2jar 并且 class 名称保持不变。)

这些是我试过的命令。没有一个有效。

dalvikvm -cp /sdcard/Test/test.zip test.server.Start

dalvikvm -cp /sdcard/Test/test.zip/classes.dex;/sdcard/Test/test.zip/classes2.dex test.server.Start

dalvikvm -cp "/sdcard/Test/test.zip/classes.dex /sdcard/Test/test.zip/classes2.dex" test.server.Start

有人知道这里出了什么问题吗?

抛开更大的问题,Dalvik 类路径是一个以冒号分隔的文件名列表(例如 /sdcard/foo1.jar:/sdcard/foo2.jar)。每个 jar/apk 包含一个 classes.dex。对于 APK,您可以使用 multidex 解决此问题,但对于命令行调用,您只需将每个 classes.dex 放入其自己的 jarfile 中即可。