android - 错误“java.exe”以代码 1 退出 - Xamarin
问题描述
我想减小 .apk 文件的大小,所以我在 Android 项目的属性窗口中检查Enable ProGuard选项,但出现编译时错误
错误“java.exe”以代码 1 退出。
我尝试了几件事
- 头部大小已经是1G了。
- Android 目标版本为 9.0(Pie)。
- 发布模式下的我的解决方案配置。
日志:
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax$a: can't find superclass or interface org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.Instrumentation: can't find referenced class com.appdynamics.eumagent.runtime.BuildInfo
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.Instrumentation: can't find referenced class com.appdynamics.eumagent.runtime.BuildInfo
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.protocol.HttpContext
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.protocol.HttpContext
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.protocol.HttpContext
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.InstrumentationCallbacks: can't find referenced class org.apache.http.protocol.HttpContext
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.Header
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpEntity
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpEntityEnclosingRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.RequestLine
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.StatusLine
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.Header
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.Header
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpEntity
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpEntityEnclosingRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.RequestLine
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.StatusLine
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.StatusLine
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpEntity
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.protocol.HttpContext
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.protocol.HttpContext
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.methods.HttpUriRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.protocol.HttpContext
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.HttpClient
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpHost
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.HttpRequest
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax: can't find referenced class org.apache.http.protocol.HttpContext
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax$a: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax$a: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax$a: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax$a: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax$a: can't find referenced class org.apache.http.client.ResponseHandler
8>PROGUARD : warning : com.appdynamics.eumagent.runtime.private.ax$a: can't find referenced class org.apache.http.HttpResponse
8>PROGUARD : warning : there were 123 unresolved references to classes or interfaces.
8>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.
========== Build: 7 succeeded, 1 failed, 4 up-to-date, 0 skipped ==========
我正在使用 proguard 4.7 文件。我不能使用最新的 proguard 文件,因为我不允许下载任何外部文件。我该如何解决这个问题?
解决方案
经过长时间的研究,我找到了解决这个问题的方法。
首先从这里下载最新的 Proguard 文件解压缩并复制到 sdk 路径C:\Program Files (x86)\Android\android-sdk\tools
,这个路径在你的情况下可能会有所不同。
必须已经有一个 proguard 文件夹,将其重命名为 proguard.old。现在从 proguard.old 文件夹复制和粘贴proguard-android
,文件到新创建的 proguard 文件夹proguard-android-optimize
。proguard-project
之后需要按照以下步骤
- 在您的 PC 中的某处创建 txt 文件并将扩展名更改为
.cfg
. - 将使用 Notepad++ 的 proguard.cfg 文件编码更改为不带 BOM 的 UTF-8 并在某处另存为。
- 现在将这个新的 proguard.cfg 添加到您的 android 项目级别。
- 将 proguard.cfg 文件构建操作更改为 ProguardConfiguration
- 清理你的项目。
如果你得到warnings
这样的前缀 progurd
PROGUARD:警告:com.appdynamics.eumagent.runtime.private
现在您需要将此包添加到您的自定义 proguard.cfg 文件中,例如
-dontwarn com.appdynamics.eumagent.runtime.**
-dontwarn
不使用关键字class
。这里**
取给定包的所有子类。
如果你得到了,exception
那么你需要找出导致问题的库并将其添加到 proguard.cfg 文件中,并带有-keep
关键字
-keep public class android.support.v7.widget.** { *; }
如果您仔细查看完整日志,progaurd 会给出所有警告,以便我们轻松发现问题。
推荐阅读
- python - 如何访问具有相同类名和标签的第二个复选框?
- c++ - How to catch out_of_range exception for range error (vector off-by-one error)
- python - 张量流错误。获取卷积算法失败。这可能是因为 cuDNN 未能初始化
- java - Rest-Assured unable to validate JSON array response
- c++ - how to resize the image through imshow (opencv , imshow )?
- ubuntu - elasticsearch.service: Failed to reset devices.list: Operation not permitted
- swiftui - SwiftUI Navigation Issues, 'Group' not resolving
- julia - Julia Distributions 包安装问题
- clojure - 使用函数内的部分作为地图上的值
- apache-nifi - Failed to Process session due to could not read from StandardFlowFileRecord