如何将Proguard Optimizer工具与Xamarin表单一起使用

编程入门 行业动态 更新时间:2024-10-26 12:26:39
本文介绍了如何将Proguard Optimizer工具与Xamarin表单一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

I want to reduce size of .apk file, so I am checking Enable ProGuard option in Android project's property window but getting compile time error

错误"java.exe"以代码1退出.

Error "java.exe" exited with code 1.

我尝试了一些类似的事情

I tried few things like

  • 头大小已经是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: ProductStatus, Configuration: Release Any CPU ------ 1>ProductStatus -> D:\New\SmartPad\Research\ProductStatus\ProductStatus\ProductStatus\bin\Release\netstandard2.0\ProductStatus.dll 2>------ Rebuild All started: Project: ProductStatus.Android, Configuration: Release Any CPU ------ 2> ProductStatus.Android -> D:\New\SmartPad\Research\ProductStatus\ProductStatus\ProductStatus.Android\bin\Release\ProductStatus.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=b77a5c561934e089" arbitrarily. 2>PROGUARD : warning : md5606e28f7ad4f2edd4892d456667ca4fb.EmdkWrapper: can't find superclass or interface com.symbol.emdk.EMDKManager$EMDKListener 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find superclass or interface com.symbol.emdk.EMDKManager$EMDKListener 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find superclass or interface com.symbol.emdk.EMDKManager$StatusListener 2>PROGUARD : warning : mono.symbol.emdk.ProfileManager_DataListenerImplementor: can't find superclass or interface com.symbol.emdk.ProfileManager$DataListener 2>PROGUARD : warning : mono.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find superclass or interface com.symbol.emdk.barcode.BarcodeManager$ScannerConnectionListener 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find superclass or interface com.symbol.emdk.barcode.Scanner$DataListener 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find superclass or interface com.symbol.emdk.barcode.Scanner$StatusListener 2>PROGUARD : warning : mono.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find superclass or interface com.symbol.emdk.scanandpair.ScanAndPairManager$StatusListener 2>PROGUARD : warning : mono.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find superclass or interface com.symbol.emdk.simulscan.SimulScanReader$DataListerner 2>PROGUARD : warning : mono.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.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$EMDKListener 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_EMDKListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$StatusListener 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$StatusData 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$StatusData 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKBase 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKManager$StatusData 2>PROGUARD : warning : mono.symbol.emdk.EMDKManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.EMDKBase 2>PROGUARD : warning : mono.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager$DataListener 2>PROGUARD : warning : mono.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager$ResultData 2>PROGUARD : warning : mono.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager 2>PROGUARD : warning : mono.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager$ResultData 2>PROGUARD : warning : mono.symbol.emdk.ProfileManager_DataListenerImplementor: can't find referenced class com.symbol.emdk.ProfileManager$ResultData 2>PROGUARD : warning : mono.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager$ScannerConnectionListener 2>PROGUARD : warning : mono.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager$ConnectionState 2>PROGUARD : warning : mono.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager 2>PROGUARD : warning : mono.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.ScannerInfo 2>PROGUARD : warning : mono.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager$ConnectionState 2>PROGUARD : warning : mono.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.ScannerInfo 2>PROGUARD : warning : mono.symbol.emdk.barcode.BarcodeManager_ScannerConnectionListenerImplementor: can't find referenced class com.symbol.emdk.barcode.BarcodeManager$ConnectionState 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find referenced class com.symbol.emdk.barcode.Scanner$DataListener 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find referenced class com.symbol.emdk.barcode.Scanner 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find referenced class com.symbol.emdk.barcode.ScanDataCollection 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_DataListenerImplementor: can't find referenced class com.symbol.emdk.barcode.ScanDataCollection 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find referenced class com.symbol.emdk.barcode.Scanner$StatusListener 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find referenced class com.symbol.emdk.barcode.Scanner 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find referenced class com.symbol.emdk.barcode.StatusData 2>PROGUARD : warning : mono.symbol.emdk.barcode.Scanner_StatusListenerImplementor: can't find referenced class com.symbol.emdk.barcode.StatusData 2>PROGUARD : warning : mono.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.scanandpair.ScanAndPairManager$StatusListener 2>PROGUARD : warning : mono.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.scanandpair.ScanAndPairManager 2>PROGUARD : warning : mono.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.scanandpair.StatusData 2>PROGUARD : warning : mono.symbol.emdk.scanandpair.ScanAndPairManager_StatusListenerImplementor: can't find referenced class com.symbol.emdk.scanandpair.StatusData 2>PROGUARD : warning : mono.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanReader$DataListerner 2>PROGUARD : warning : mono.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanReader 2>PROGUARD : warning : mono.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanData 2>PROGUARD : warning : mono.symbol.emdk.simulscan.SimulScanReader_DataListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanData 2>PROGUARD : warning : mono.symbol.emdk.simulscan.SimulScanReader_StatusListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanReader$StatusListerner 2>PROGUARD : warning : mono.symbol.emdk.simulscan.SimulScanReader_StatusListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanReader 2>PROGUARD : warning : mono.symbol.emdk.simulscan.SimulScanReader_StatusListenerImplementor: can't find referenced class com.symbol.emdk.simulscan.SimulScanStatusData 2>PROGUARD : warning : mono.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以上的问题.

How can I fix this issue? I want to fix above error not only warnings.

推荐答案

请按照以下步骤操作

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

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

If you are getting warnings then you need to use -dontwarn attribute like below

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

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

You must need to remove/solve warning because that cause above error. Above code will remove all of your warnings. If you are getting exception after executing your application you need to use -keep attribute. like below for required classes

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

更多推荐

如何将Proguard Optimizer工具与Xamarin表单一起使用

本文发布于:2023-10-09 18:02:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1476397.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表单   如何将   工具   Optimizer   Proguard

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!