Xamarin Android Multi Dex应用程序,具有在Lollipop之前运行的自定义应用程序类

Bra*_*cke 7 xamarin.android android-multidex

关于这个问题散布着不少帖子,但我的问题是:

有没有人设法成功构建一个支持MultiDex的应用程序,该应用程序利用将在Lollipop前设备上运行的自定义应用程序类?

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

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

[AndroidRuntime] java.lang.RuntimeException:无法实例化应用程序md5a3fc106bb082f0a6c07b5025b0a464e3.MyApplication:java.lang.ClassNotFoundException:路径上没有找到类"md5a3fc106bb082f0a6c07b5025b0a464e3.MyApplication"

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

关于它的文章很多:

https://bugzilla.xamarin.com/show_bug.cgi?id=35491 https://forums.xamarin.com/discussion/57485/multiple-issues-with-library-project-and-multidex

我做了什么:

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

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

mainDexClasses_fixed.bat --output C:\ Users\bradl_000\Documents\blocke79\App\App\obj\Debug\multidex.keep"'C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\MonoAndroid\v6. 0\mono.android.jar ';' C:\ androidsdk \额外\机器人\支持\ multidex \库\库\机器人支撑-multidex.jar ';' C:\用户\ bradl_000 \文件\ blocke79 \应用\ App\obj\Debug__library_projects __\Aniways.AndroidBinding\library_project_imports\aniways-V2.3.08.jar'"(已修剪这个庞大的列表供阅读)

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

这消除了有关应用程序类的错误,但抛出了一个关于无法找到PackageManager类的新错误.

java.lang.NoClassDefFoundError%3A + mono.MonoPackageManager_Resources

然后我开始考虑我应该减少MultiDexMainDexList文件中的整个类列表,并保留我认为我的自定义应用程序类需要加载的类.无论我对这个列表做了什么,我仍然得到有关PackageManager的错误.包含管理器类,我尝试使用类的顺序,以防有所作为.

单/ MonoPackageManager.class

有没有人走过同样的道路比我更成功?它甚至可能吗?