我最近几天尝试解决这个问题,仍然没有成功。 如果我在没有proguard的情况下构建发布版本,那么一切都很好。
我读了许多关于可能出现的问题的话题,但在我的案例中没什么用。 到目前为止,我做了如下:
一般Android -dontwarn org.apache.http。** -dontwarn android.net.http.AndroidHttpClient
Android支持库
-keep class android.support.multidex.MultiDexApplication
-keep class android.support.v4。**
-keep class android.support.v7。** { 上市 *; }
Google Play结算
-keep class com.android.vending.billing。**
Google Play服务
-dontwarn com.google.android.gms.internal。*
-keep class * extends java.util.ListResourceBundle { protected java.lang.Object [] [] getContents(); }
结果是0警告和1错误。
错误: C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ Xamarin \ Android \ Xamarin.Android.Common.targets(1929,3): 错误MSB6006:" java.exe"退出代码1.
我还能做什么? 请帮忙。
更新 我创建了全新的应用程序" Xamarin Hello World"那里" ProGuard"作品。所以我的应用程序不是系统一定是错的。 但Visual Studio没有向我展示除Java代码之外的任何其他错误1.那么如何追踪问题在哪里?
更新 问题发生在我的" proguard.cfg"文件。我复制其他来源和一行的内容应该有评论,但它不是。所以这个问题消失了。但现在出现了一些警告:
2>PROGUARD : warning : can't write resource [META-INF/MANIFEST.MF](Duplicate zip entry [classes.jar:META-INF/MANIFEST.MF])
2>Copying resources from program jar [G:\ApkiC-Sharp\GNote\GNote\GNote.Android\obj\Release\__library_projects__\Xamarin.GooglePlayServices.Basement\library_project_imports\classes.jar](TaskId:345)
2>PROGUARD : warning : can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [classes.jar:META-INF/MANIFEST.MF])
2>Copying resources from program jar [G:\ApkiC-Sharp\GNote\GNote\GNote.Android\obj\Release\__library_projects__\Xamarin.GooglePlayServices.Maps\library_project_imports\classes.jar] (TaskId:345)
2>PROGUARD : warning : can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [classes.jar:META-INF/MANIFEST.MF])
2>Copying resources from program jar [G:\ApkiC-Sharp\GNote\GNote\GNote.Android\obj\Release\__library_projects__\Xamarin.GooglePlayServices.Tasks\library_project_imports\classes.jar] (TaskId:345)
2>PROGUARD : warning : can't write resource [META-INF/MANIFEST.MF] (Duplicate zip entry [classes.jar:META-INF/MANIFEST.MF])
它的意义是什么?有什么值得担心的吗? 如何检查" ProGuard"工作正常吗?
答案 0 :(得分:0)
我在Windows 10 x64和Visual Studio 2015上也遇到了相同的问题。我已在Visual Studio工具->选项-> xamarin-> java开发工具包位置的android设置下将JDK路径设置为JDK 1.8。它指向“ C:\ Program Files(x86)\ Java \ jdk1.7.0_55”,而我却指向“ C:\ Program Files \ Java \ jdk1.8.0_31”,问题已得到解决。
答案 1 :(得分:-1)
尝试启用Multi-Dex编译选项。