【发布时间】:2017-03-16 06:10:51
【问题描述】:
我最近打破了 Dalvik 限制 (https://developer.android.com/studio/build/multidex.html) 当我开始获得 64K 参考文献时
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/ Xamarin.Android.Common.targets:错误:工具退出,代码:2。 输出:写入故障输出:字段引用过多:77369;最大限度 是 65536。您可以尝试使用 --multi-dex 选项。
将一些 nuget 更新到 MonoDroid 7 后出错。
当我在 android 设置中打开 MultiDex 选项并编译我的项目时,我得到 -
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: 错误:工具退出,代码:10。输出:错误:无法读取 [/Library/Frameworks/Xamarin.Android.framework/Versions/7.0.1-3/lib/xbuild-frameworks/MonoAndroid/v7.0/mono.android.jar] (无法处理类 [android/app/ActivityTracker.class](不支持 类版本号 [52.0](最大 51.0,Java 1.7))) (pjr.mob.android)
我可以看到与此相关的 BUG -
https://bugzilla.xamarin.com/show_bug.cgi?id=44187
https://bugzilla.xamarin.com/show_bug.cgi?id=44013
https://bugzilla.xamarin.com/show_bug.cgi?id=33052
https://bugzilla.xamarin.com/show_bug.cgi?id=35491
看起来我必须手动下载并安装 ProGuard 5.X,如这些答案中所述 -
Xamarin.Android Proguard - Unsupported class version number 52.0
Xamarin Android ProGuard Enable
并克服由此产生的任何问题。
然而,Xamarin Studio 在 proguard 选项旁边的 (i) 信息框中明确告诉我们,不建议为 DEBUG 构建运行 proguard,我们应该只在先尝试 proguard 后运行 multidex。
这是否意味着我们在启用它后无法有效调试?但我现在无论如何都无法调试(即使使用我认为可能有帮助的链接器,我什至无法运行发布版本)而不启用它?
是否会为此提供某种 Xamarin 支持,或者我是否需要考虑以某种方式减少我们使用的软件包等(我不确定我能做到,因为其中大部分与 Google Play 服务相关)。
感谢任何帮助。
Xamarin Studio 帮助中的其他信息 > 关于
Java SDK:/usr java版本“1.8.0_112” Java(TM) SE 运行时环境 (build 1.8.0_112-b16) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.112-b16,混合模式)
【问题讨论】:
标签: xamarin xamarin.android proguard xamarin-studio