在Android Kitkat上运行独立的多索引jar

在Android Kitkat上运行独立的多索引jar,android,jar,android-5.0-lollipop,android-4.4-kitkat,android-multidex,Android,Jar,Android 5.0 Lollipop,Android 4.4 Kitkat,Android Multidex,我一直在尝试将Java应用程序作为独立的JAR(而不是apk)在android设备上运行。一开始一切都很顺利:我使用Android SDK中的dex编译器,将dex文件打包到一个jar中,将其推送到设备上,并使用一个(类似于链接中的示例)来运行它 当我包含更多库并达到65K dex函数限制时,我在dex编译器中使用了--multi-dex标志。编译成功了,我还能够在棒棒糖设备上运行我的代码。但是,在Kitkat上运行完全相同的jar会出现以下运行时异常: java.lang.VerifyErro

我一直在尝试将Java应用程序作为独立的JAR(而不是apk)在android设备上运行。一开始一切都很顺利:我使用Android SDK中的dex编译器,将dex文件打包到一个jar中,将其推送到设备上,并使用一个(类似于链接中的示例)来运行它

当我包含更多库并达到65K dex函数限制时,我在dex编译器中使用了--multi-dex标志。编译成功了,我还能够在棒棒糖设备上运行我的代码。但是,在Kitkat上运行完全相同的jar会出现以下运行时异常:

java.lang.VerifyError: scala/None$
    at akka.actor.ActorSystem$.<init>(ActorSystem.scala:30)
    at akka.actor.ActorSystem$.<clinit>(ActorSystem.scala)
    at akka.actor.ActorSystem.create(ActorSystem.scala)
    at com.example.MyClass.calculate(MyClass.java:185)
    at com.example.Main.main(Main.java:16)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:243)
    at dalvik.system.NativeStart.main(Native Method)
在当前情况下,这显然是不可能的,因为我没有清单文件

我如何为我的独立jar启用multidex支持?我应该在编译中添加库吗?我应该以不同的方式运行罐子吗


谢谢。

您在这里看到的4.4和5.0之间的最大区别可能是从DVM(需要复杂的粘合)到ART(可以在vm中加载多个dex文件)的转换。我相信ART在4.4上可以作为一个运行时选项,允许开发人员针对它进行测试,所以也许您可以启动一个实例,而不是DVM?如果您还没有这样做的话,您可能还会看到是否可以使用更积极的配置(如proguard)来修剪未使用的方法。为了使用多索引方法,您是否使用了足够低的版本进行构建,以便应用到何处的完全决策?是否有可能将您的代码构建到apk中,然后将各种dex文件从中剥离出来?谢谢@ChrisStratton的建议。我无法将运行时切换到ART,因为我需要与当前不适用于ART的其他代码进行交互。关于您关于将第一个构建为apk的建议,如果我理解正确,我需要手动检查哪些类插入到每个dex文件中,并使用我需要的dex文件。听起来太零碎了,无法工作。。。
android:name="android.support.multidex.MultiDexApplication"