如何在 xamarin 表单中使用 proguard 优化器工具

R15

我想减小 .apk 文件的大小,所以我在 Android 项目的属性窗口中检查 Enable ProGuard 选项,但出现编译时错误

错误“java.exe”退出,代码为 1。

我尝试了一些类似的事情

  • 头部大小已经是1G。
  • Android 目标版本是 9.0(Pie)。
  • 发布模式下的我的解决方案配置。
  • 使用最新的 ProGuard 文件(6.1.1)
  • 在新的 ProGuard 文件中添加了 proguard-android.txt、proguard-android-optimize.txt 和 proguard-project.txt。

日志:

1>------ Rebuild All started: Project: DirectionApp, Configuration: Release Any CPU ------
1>DirectionApp -> D:\New\West\ReadOut\DirectionApp\DirectionApp\DirectionApp\bin\Release\netstandard2.0\DirectionApp.dll
2>------ Rebuild All started: Project: DirectionApp.Android, Configuration: Release Any CPU ------
2>  DirectionApp.Android -> D:\New\West\ReadOut\DirectionApp\DirectionApp\DirectionApp.Android\bin\Release\DirectionApp.Android.dll
2>  No way to resolve conflict between "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e". Choosing "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5614e089" arbitrarily.
2>PROGUARD : warning : md5606e28f7ad4f2edd4892d456667ca4fb.EmdkWrapper: can't find superclass or interface com.symbol.emdk.EMDKManager$EMDKListener
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find superclass or interface com.symbol.emdk.EMDKManager$EMDKListener
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find superclass or interface com.symbol.emdk.EMDKManager$StatusListener
2>PROGUARD : warning : mono.com.symbol.emdk.ProfileManager_DataListenerImplementor: can't find superclass or interface com.symbol.emdk.ProfileManager$DataListener
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find superclass or interface com.symbol.emdk.barcode.BarcodeManager$ScannerConnectionListener
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find superclass or interface com.symbol.emdk.barcode.Scanner$DataListener
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find superclass or interface com.symbol.emdk.barcode.Scanner$StatusListener
2>PROGUARD : warning : mono.com.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find superclass or interface com.symbol.emdk.scanandpair.ScanAndPairManager$StatusListener
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find superclass or interface com.symbol.emdk.simulscan.SimulScanReader$DataListerner
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_StatusListenerImplementor: can't find superclass or interface com.symbol.emdk.simulscan.SimulScanReader$StatusListerner
2>PROGUARD : warning : md5606e28f7ad4f2edd4892d456667ca4fb.EmdkWrapper: can't find referenced class com.symbol.emdk.EMDKManager$EMDKListener
2>PROGUARD : warning : md5606e28f7ad4f2edd4892d456667ca4fb.EmdkWrapper: can't find referenced class com.symbol.emdk.EMDKManager
2>PROGUARD : warning : md5606e28f7ad4f2edd4892d456667ca4fb.EmdkWrapper: can't find referenced class com.symbol.emdk.EMDKManager
2>PROGUARD : warning : md5606e28f7ad4f2edd4892d456667ca4fb.EmdkWrapper: can't find referenced class com.symbol.emdk.EMDKManager
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$EMDKListener
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$StatusListener
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$StatusData
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$StatusData
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKBase
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$StatusData
2>PROGUARD : warning : mono.com.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKBase
2>PROGUARD : warning : mono.com.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager$DataListener
2>PROGUARD : warning : mono.com.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager$ResultData
2>PROGUARD : warning : mono.com.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager
2>PROGUARD : warning : mono.com.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager$ResultData
2>PROGUARD : warning : mono.com.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager$ResultData
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager$ScannerConnectionListener
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager$ConnectionState
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.ScannerInfo
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager$ConnectionState
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.ScannerInfo
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager$ConnectionState
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find referenced class com.symbol.emdk.barcode.Scanner$DataListener
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find referenced class com.symbol.emdk.barcode.Scanner
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find referenced class com.symbol.emdk.barcode.ScanDataCollection
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find referenced class com.symbol.emdk.barcode.ScanDataCollection
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find referenced class com.symbol.emdk.barcode.Scanner$StatusListener
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find referenced class com.symbol.emdk.barcode.Scanner
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find referenced class com.symbol.emdk.barcode.StatusData
2>PROGUARD : warning : mono.com.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find referenced class com.symbol.emdk.barcode.StatusData
2>PROGUARD : warning : mono.com.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.scanandpair.ScanAndPairManager$StatusListener
2>PROGUARD : warning : mono.com.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.scanandpair.ScanAndPairManager
2>PROGUARD : warning : mono.com.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.scanandpair.StatusData
2>PROGUARD : warning : mono.com.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.scanandpair.StatusData
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanReader$DataListerner
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanReader
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanData
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanData
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_StatusListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanReader$StatusListerner
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_StatusListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanReader
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_StatusListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanStatusData
2>PROGUARD : warning : mono.com.symbol.emdk.simulscan.SimulScanReader_StatusListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanStatusData
2>PROGUARD : warning : there were 57 unresolved references to classes or interfaces.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2550,3): error MSB6006: "java.exe" exited with code 1.
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========

我该如何解决这个问题?我想修复上面的error不仅仅是警告。

混淆器

R15

按照以下步骤操作

  • 首先,您需要将 proguard.cfg 添加到您的 android 项目级别。
  • 将 proguard.cfg 文件构建操作更改为 ProguardConfiguration
  • 使用 Notepad++ 将 proguard.cfg 文件编码更改为 UTF-8

如果您收到警告,则需要使用-dontwarn如下属性

-dontwarn com.symbol.emdk.**
-dontwarn org.apache.http.**
-dontwarn com.appdynamics.eumagent.runtime.**

您必须需要删除/解决警告,因为这会导致上述错误。上面的代码将删除您的所有警告。
如果在执行应用程序后遇到异常,则需要使用-keep属性。像下面所需的课程

-keep public class android.support.v7.widget.** { *; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Xamarin表单中使用ControlTemplate进行替代绑定

如何在Xamarin表单图片标签中使用url +绑定

如何在Xamarin表单中使用推送通知

如何在Xamarin表单中使用单选按钮

如何在Xamarin表单中使用Wikitude插件?

如何在Xamarin表单中使用Heavy字体?

如何在Android Studio中使用ProGuard?

如何在Xamarin表单中启用工具栏

如何在 Unity 中使用 Proguard 保留 AdColony?

如何在验证器函数中使用JS提交表单

如何在ActiveAdmin表单中使用视图帮助器

如何仅通过优化功能使用Android Proguard

如何在intellij IDEA上使用proguard?

如何在 Xamarin.forms 中使用浮动操作按钮与 PCL 项目表单代码共享?

如何在 xamarin 表单中使用 X 和 Y 坐标定位按钮?

如何在 Xamarin 表单中使用全宽矩形裁剪网格

Xamarin表单:如何在PCL Project中使用嵌入式资源获取图像

如何在Xamarin表单中使用Object Initializer为Label添加setbinding

如何在Xamarin表单中使用Firebase存储“全部列出”方法(CSharp)

如何在Xamarin中使用Syncfusion自定义工具提示的内容和位置?

如何在Xamarin.Forms中使用不同颜色的顶部和底部工具栏

如何使用ProGuard?

如何在导航页 xamarin 表单中使用标签页获取可用区域内容视图 xamarin

如何在Xamarin iOS中使用applicationDidBecomeActive?

如何在Xamarin Android中使用RunOnUIThread()

如何在Xamarin中使用Hash SHA

如何在Xamarin Froms中使用SqLite?

如何在Xamarin中使用SetAction

如何在Xamarin Android中使用NLog