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

时间:2016-04-08 14:44:34

标签: 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 \ 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

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

0 个答案:

没有答案