我想减小.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表单一起使用
发布评论