Xamarin.android Xamarin Android Multi-Dex应用程序,带有在pre Lollipop上运行的自定义应用程序类

Xamarin.android Xamarin Android Multi-Dex应用程序,带有在pre Lollipop上运行的自定义应用程序类,xamarin.android,android-multidex,Xamarin.android,Android Multidex,关于这一点有很多帖子,但我的问题是: 是否有人成功地构建了一个支持多索引的应用程序,该应用程序利用了将在棒棒糖前设备上运行的自定义应用程序类 对于想了解更多信息的人,请继续阅读 问题在于,当创建使用自定义应用程序类的MultiDex应用程序时(我猜超过65k限制的绝大多数应用程序都属于此类),该类不会出现在第一个dex文件中,这会导致没有内置MultiDex支持的设备因错误而崩溃 [AndroidRuntime]java.lang.RuntimeException:无法实例化应用程序MD5A3F

关于这一点有很多帖子,但我的问题是:

是否有人成功地构建了一个支持多索引的应用程序,该应用程序利用了将在棒棒糖前设备上运行的自定义应用程序类

对于想了解更多信息的人,请继续阅读

问题在于,当创建使用自定义应用程序类的MultiDex应用程序时(我猜超过65k限制的绝大多数应用程序都属于此类),该类不会出现在第一个dex文件中,这会导致没有内置MultiDex支持的设备因错误而崩溃

[AndroidRuntime]java.lang.RuntimeException:无法实例化应用程序MD5A3FC106BB082F0A6C07B025B0A464E3。MyApplication:java.lang.ClassNotFoundException:在路径上未找到类“MD5A3FC106BB082F0A6C07B050A464E3.MyApplication”

我已经尝试了所有列出的解决方案,包括来自Xamarin支持的解决方案,以实现这一目标

关于它的文章很多:

我所做的:

我已经使用修改过的mainDexClasses.bat文件创建了一个自定义的MultiDexMainDexList文件(根据文章)

然后我修改了Xamarin抛出的命令,以使用完整路径名,因为Xamarin只是尝试使用“obj\Debug”

mainDexClasses\u fixed.bat--输出C:\Users\bradl\u 000\Documents\blocke79\App\App\obj\Debug\multidex.keep“'C:\Program Files(x86)\参考Assemblies\Microsoft\Framework\monoadroid\v6.0\mono.android.jar';'C:\androidsdk\extras\android\support\multidex\libs\android support multidex.jar';'C:\Users\bradl\u 000\Documents\blocke79\App\App\obj\Debug\u library\u projects\u imports\Aniways.AndroidBinding\library\u project\u imports\Aniways\Aniways-V2.3.08.jar''(已经删减了这个庞大的阅读清单)

这将生成一个包含项目中所有类的MultiDexMainDexList文件。然后,我使用新的构建操作“MultiDexMainDexList”(仅在Alpha channel v6中可用)将其添加到项目中

这将消除关于应用程序类的错误,但会引发一个关于无法找到PackageManager类的新错误

java.lang.NoClassDefFoundError%3A+mono.MonoPackageManager\u资源

然后我开始想我应该在MultiDexMainDexList文件中删减整个类列表,只保留我认为我的自定义应用程序类需要加载的类。无论我对这个列表做了什么,我仍然会得到关于PackageManager的错误。包管理器类包括在内,我已经尝试使用它e类的顺序,以防产生差异

mono/MonoPackageManager.class


有没有人在同一条道路上比我更成功?有可能吗?

你解决了这个问题吗?你还在努力吗?我的高度定制的应用程序运行得非常成功-如果你仍然卡住了,请告诉我。@Ewald我也在努力解决同样的问题。你成功了吗?@Carel-是的,我的应用程序从一开始就运行得非常好我是KitKat Upper。我为这个问题添加了一个可能会对你有所帮助的答案-