我正在使用我已经包含在需要MultiDex的项目中的软件包,我有156561个引用,所以我需要多个.dex文件。
但它失败了,引用主要的dex文件太大了
有人建议使用keepRuntimeAnnotatedClasses为false,但是我使用的是Xamarin,如果不使用Gradle,则不清楚如何实现这一点。
其他人建议设置最小API> 21,这对我的项目来说已经是正确的。
我也手动升级了Proguard,因为MultiDex使用它并获得了最新的1.8 JDK
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Too many classes in --main-dex-list, main dex capacity exceeded
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:548)
at com.android.dx.command.dexer.Main.runMultiDex(Main.java:368)
at com.android.dx.command.dexer.Main.runDx(Main.java:289)
at com.android.dx.command.dexer.Main.main(Main.java:247)
at com.android.dx.command.Main.main(Main.java:94)
我认为MultiDex将成为“太多课程”的解决方案。然而,似乎任何决定填充主要dex文件的逻辑都过度填充它
假设您使用的是最新版本的Xamarin.Android,您可以尝试使用“新”Google D8 dex工具与使用Proguard。
<PropertyGroup>
<AndroidDexTool>d8</AndroidDexTool>
<AndroidLinkTool>r8</AndroidLinkTool>
</PropertyGroup>
有关各种D8 / R8项目配置的详细信息,请参见Xamarin.Android回购: