在Xamarin Studio中启用MultiDex或ProGuard时出错

Wic*_*edW 3 proguard xamarin.android xamarin xamarin-studio

我最近打破了64K referencs 的Dalvik限制(https://developer.android.com/studio/build/multidex.html)

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/ Xamarin.Android.Common.targets:错误:工具退出代码:2.输出:写入输出错误:字段引用太多:77369; max是65536.您可以尝试使用--multi-dex选项.

将一些nugets更新到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 - 不支持的类版本号52.0

Xamarin Android ProGuard启用

并克服由此产生的任何问题.

然而,Xamarin Studio明确地告诉我们,在proguard选项旁边的(i)信息框中,不建议为DEBUG构建运行proguard,并且我们应该在首先尝试proguard之后运行multidex.

这是否意味着启用后我们无法有效调试?但我无论如何都无法进行DEBUG(即使使用我认为可能有帮助的链接器,我甚至无法运行发布版本)现在还没有启用它?

是否有某种Xamarin支持为此或我需要以某种方式减少我们使用的包等(我不确定我可以做,因为大多数是与Google Play服务相关).

任何帮助表示赞赏.

来自Xamarin Studio的其他信息帮助>关于

Java SDK:/ usr java version"1.8.0_112"Java(TM)SE运行时环境(版本1.8.0_112-b16)Java HotSpot(TM)64位服务器VM(版本25.112-b16,混合模式)

Sus*_*ver 5

Unsupported class version number [52.0] (maximum 51.0, Java 1.7)

1)你得到的错误是没有安装Java v8和/或Xamarin配置使用它.

参考:Xamarin Studio中的java Lang UnsupportedClassVersion错误

第2项)MultiDex可以在没有的情况下使用Proguard,仅在API-20及以下版本中使用.启用后Multi-Dex,Android SDK工具可根据需要创建尽可能多的第二性别文件.

3)如果你正在启用Proguard,你应该考虑用proguard.jarandroid-idk的Facebook版本取代你的版本,因为它太快了;-)

参考:https://github.com/facebook/proguard

或者使用基于SourceForge的:

参考:Xamarin.Android Proguard - 不支持的类版本号52.0