2

Xamarin.Forms項目後,我加入ModernHTTPClient庫現在用錯誤ProGuard的步遊:的ProGuard:「java.exe的」與代碼1退出添加ModernHTTPClient

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2025,3): error MSB6006: "java.exe" exited with code 1.

(在此之前,我有一些問題使用ProGuard,但通過將ProGuard升級到最新版本,可以將其安裝到Android 7.1上。)

日誌文件中的一些詳細信息如下。

2> Proguard (TaskId:363) 
2> AndroidSdkDirectory: C:\android-sdk\ (TaskId:363) 
2> JavaPlatformJarPath: C:\android-sdk\platforms\android-25\android.jar (TaskId:363) 
2> ClassesOutputDirectory: obj\Release\android\bin\classes (TaskId:363) 
2> AcwMapFile: obj\Release\acw-map.txt (TaskId:363) 
2> ProguardGeneratedApplicationConfiguration: obj\Release\proguard\proguard_project_primary.cfg (TaskId:363) 
2> ProguardJarInput: obj\Release\proguard\__proguard_input__.jar (TaskId:363) 
2> ProguardJarOutput: obj\Release\proguard\__proguard_output__.jar (TaskId:363) 
2> ProguardGeneratedReferenceConfiguration: (TaskId:363) 
2>  obj\Release\proguard\proguard_project_references.cfg (TaskId:363) 
2> ProguardGeneratedApplicationConfiguration: (TaskId:363) 
2>  obj\Release\proguard\proguard_project_primary.cfg (TaskId:363) 
2> ProguardCommonXamarinConfiguration: (TaskId:363) 
2>  obj\Release\proguard\proguard_xamarin.cfg (TaskId:363) 
2> ProguardConfigurationFiles: (TaskId:363) 
2>  
2>   {sdk.dir}tools\proguard\proguard-android.txt; 
2>   {intermediate.common.xamarin}; 
2>   {intermediate.references}; 
2>   {intermediate.application}; 
2>   ; 
2>  (TaskId:363) 
2> ExternalJavaLibraries: (TaskId:363) 
2> DoNotPackageJavaLibraries: (TaskId:363) 
2> UseProguard: False (TaskId:363) 
2> EnableLogging: False (TaskId:363) 
2> DumpOutput: obj\Release\proguard\dump.txt (TaskId:363) 
2> PrintSeedsOutput: obj\Release\proguard\seeds.txt (TaskId:363) 
2> PrintMappingOutput: obj\Release\proguard\mapping.txt (TaskId:363) 
2> Environment Variables passed to tool: (TaskId:363) 
2> JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 (TaskId:363) 
2> C:\Program Files\Java\jdk1.8.0_121\\bin\java.exe -jar C:\android-sdk\tools\proguard\lib\proguard.jar -include C:\android-sdk\\tools\proguard\proguard-android.txt -include obj\Release\proguard\proguard_xamarin.cfg -include obj\Release\proguard\proguard_project_references.cfg -include obj\Release\proguard\proguard_project_primary.cfg "-injars 'obj\Release\proguard\__proguard_input__.jar';'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v7.1\mono.android.jar';'obj\Release\__library_projects__\FormsViewGroup\library_project_imports\formsviewgroup.jar';'obj\Release\__library_projects__\OkHttp\library_project_imports\okhttp-2.3.0-jar-with-dependencies.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.Animated.Vector.Drawable\23.3.0.0\embedded\classes.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.Design\23.3.0.0\embedded\classes.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v4\23.3.0.0\embedded\classes.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v4\23.3.0.0\embedded\libs\internal_impl-23.3.0.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.AppCompat\23.3.0.0\embedded\classes.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.CardView\23.3.0.0\embedded\classes.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.MediaRouter\23.3.0.0\embedded\classes.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.MediaRouter\23.3.0.0\embedded\libs\internal_impl-23.3.0.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.RecyclerView\23.3.0.0\embedded\classes.jar';'C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.Vector.Drawable\23.3.0.0\embedded\classes.jar'" "-libraryjars 'C:\android-sdk\platforms\android-25\android.jar'" -outjars "obj\Release\proguard\__proguard_output__.jar" -optimizations !code/allocation/variable (TaskId:363) 
2> ProGuard, version 5.3.3 (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.Snackbar$Callback$DismissEvent' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.Snackbar$Callback' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.Snackbar$Duration' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.CoordinatorLayout$Behavior' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.CoordinatorLayout$DefaultBehavior' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.internal.NavigationMenuPresenter$NavigationMenuHeaderItem' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.internal.NavigationMenuPresenter$NavigationMenuItem' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.internal.NavigationMenuPresenter$NavigationMenuTextItem' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.internal.NavigationMenuPresenter$ViewHolder' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.AppBarLayout$LayoutParams$ScrollFlags' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.AppBarLayout$OnOffsetChangedListener' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'mono.android.support.design.widget.AppBarLayout_OnOffsetChangedListenerImplementor' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.BottomSheetBehavior$State' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.FloatingActionButton$OnVisibilityChangedListener' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.HeaderBehavior' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.HeaderScrollingViewBehavior' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.NavigationView$OnNavigationItemSelectedListener' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'mono.android.support.design.widget.NavigationView_OnNavigationItemSelectedListenerImplementor' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'android.support.design.widget.SwipeDismissBehavior$OnDismissListener' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'mono.android.support.design.widget.SwipeDismissBehavior_OnDismissListenerImplementor' (TaskId:363) 
... 
2> Note: the configuration doesn't specify which class members to keep for class 'com.squareup.okhttp.Authenticator' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'com.squareup.okhttp.Callback' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'com.squareup.okhttp.Interceptor$Chain' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'com.squareup.okhttp.Interceptor' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'okio.ForwardingSink' (TaskId:363) 
2> Note: the configuration doesn't specify which class members to keep for class 'okio.ForwardingSource' (TaskId:363) 
... 
2> Reading program jar [C:\Users\user\Desktop\MyProjectXXX\MyProjectXXX.Mobile\MyProjectXXX.Mobile.Android\obj\Release\__library_projects__\FormsViewGroup\library_project_imports\formsviewgroup.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\Desktop\MyProjectXXX\MyProjectXXX.Mobile\MyProjectXXX.Mobile.Android\obj\Release\__library_projects__\OkHttp\library_project_imports\okhttp-2.3.0-jar-with-dependencies.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.Animated.Vector.Drawable\23.3.0.0\embedded\classes.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.Design\23.3.0.0\embedded\classes.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v4\23.3.0.0\embedded\classes.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v4\23.3.0.0\embedded\libs\internal_impl-23.3.0.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.AppCompat\23.3.0.0\embedded\classes.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.CardView\23.3.0.0\embedded\classes.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.MediaRouter\23.3.0.0\embedded\classes.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.MediaRouter\23.3.0.0\embedded\libs\internal_impl-23.3.0.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.v7.RecyclerView\23.3.0.0\embedded\classes.jar] (TaskId:363) 
2> Reading program jar [C:\Users\user\AppData\Local\Xamarin\Xamarin.Android.Support.Vector.Drawable\23.3.0.0\embedded\classes.jar] (TaskId:363) 
2> Reading library jar [C:\android-sdk\platforms\android-25\android.jar] (TaskId:363) 
2> Initializing... (TaskId:363) 
2> Note: the configuration refers to the unknown class 'com.google.vending.licensing.ILicensingService' (TaskId:363) 
2> Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService' (TaskId:363) 
2> Note: the configuration refers to the unknown class 'android.support.annotation.Keep' (TaskId:363) 
2> Note: the configuration refers to the unknown class 'android.support.annotation.Keep' (TaskId:363) 
2> Note: the configuration refers to the unknown class 'android.support.annotation.Keep' (TaskId:363) 
2> Note: the configuration refers to the unknown class 'android.support.annotation.Keep' (TaskId:363) 
2> Note: the configuration refers to the unknown class 'android.support.annotation.Keep' (TaskId:363) 
2> Note: android.support.v4.app.NotificationCompatJellybean calls 'Field.getType' (TaskId:363) 
2>PROGUARD : warning : okio.DeflaterSink: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 
2>PROGUARD : warning : okio.Okio: can't find referenced class java.nio.file.Files 
2>PROGUARD : warning : okio.Okio: can't find referenced class java.nio.file.Files 
2>PROGUARD : warning : okio.Okio: can't find referenced class java.nio.file.Files 
2>PROGUARD : warning : okio.Okio: can't find referenced class java.nio.file.Path 
2>PROGUARD : warning : okio.Okio: can't find referenced class java.nio.file.OpenOption 
2>PROGUARD : warning : okio.Okio: can't find referenced class java.nio.file.Path 
... 
2> Note: there were 7 references to unknown classes. (TaskId:363) 
2>  You should check your configuration for typos. (TaskId:363) 
2>  (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass) (TaskId:363) 
2> Note: there were 1 classes trying to access generic signatures using reflection. (TaskId:363) 
2>  You should consider keeping the signature attributes (TaskId:363) 
2>  (using '-keepattributes Signature'). (TaskId:363) 
2>  (http://proguard.sourceforge.net/manual/troubleshooting.html#attributes) (TaskId:363) 
2> Note: there were 15 unkept descriptor classes in kept class members. (TaskId:363) 
2>  You should consider explicitly keeping the mentioned classes (TaskId:363) 
2>  (using '-keep'). (TaskId:363) 
2>  (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass) (TaskId:363) 
2> Note: there were 9 unresolved dynamic references to classes or interfaces. (TaskId:363) 
2>  You should check if you need to specify additional program jars. (TaskId:363) 
2>  (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass) (TaskId:363) 
2> Note: there were 3 accesses to class members by means of introspection. (TaskId:363) 
2>  You should consider explicitly keeping the mentioned class members (TaskId:363) 
2>  (using '-keep' or '-keepclassmembers'). (TaskId:363) 
2>  (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclassmember) (TaskId:363) 
2>PROGUARD : warning : there were 14 unresolved references to classes or interfaces. 
2>   You may need to add missing library jars or update their versions. (TaskId:363) 
2>   If your code works fine without the missing classes, you can suppress (TaskId:363) 
2>   the warnings with '-dontwarn' options. (TaskId:363) 
2>   (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass) (TaskId:363) 
2> java.io.IOException: Please correct the above warnings first. (TaskId:363) 
2>  at proguard.Initializer.execute(Initializer.java:473) (TaskId:363) 
2>  at proguard.ProGuard.initialize(ProGuard.java:233) (TaskId:363) 
2>  at proguard.ProGuard.execute(ProGuard.java:98) (TaskId:363) 
2>  at proguard.ProGuard.main(ProGuard.java:538) (TaskId:363) 
2> Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 (TaskId:363) 
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2025,3): error MSB6006: "java.exe" exited with code 1. 
2>Done executing task "Proguard" -- FAILED. (TaskId:363) 
2>Done building target "_CompileToDalvikWithDx" in project "MyProjectXXX.Mobile.Android.csproj" -- FAILED.: (TargetId:310) 
2> 

我試着將Java堆大小增加到1G,但沒有任何效果。

請讓我知道如果你有任何想法如何解決這個問題。謝謝。

+0

不知道這一點錯誤,但我建議不要再使用現代HTTP客戶端。我使用它獨佔使用它,但現在Xamarin允許您獲得使用本地消息處理程序而不使用庫的相同功能。當網絡連接丟失時,我也停止使用它,因爲來自庫的Android上不可捕捉的異常來自其他事物。這些問題已在GitHub頁面上提出,但它們都沒有實際修復。 – hvaughan3

+0

我認爲這說明了一切;警告:有14個未解決的對類或接口的引用。您可能需要添加缺少的庫罐或更新其版本。如果你的代碼工作正常,沒有缺失的類,你可以用'-twtwarn'選項來禁止警告。「# –

+0

傑拉爾德正在進行一些工作。但是實際的錯誤是'''2> java.io.IOException:請先糾正上述警告。「這意味着您需要修正上面的警告或禁止它們。 –

回答

3

這聽起來像所有你需要做的是一個proguard.cfg文件添加到您的項目設置爲ProguardConfiguration,以消除任何警告,並保留任何必要的類,例如生成操作:

# General Android 
-dontwarn org.apache.http.** 
-dontwarn android.net.http.AndroidHttpClient 

# Android Support Library 
-keep class android.support.multidex.MultiDexApplication 
-keep class android.support.v4.** 
-keep class android.support.v7.** { 
    public *; 
} 

# Google Play Billing 
-keep class com.android.vending.billing.** 

# Google Play Services 
-dontwarn com.google.android.gms.internal.* 
-keep class * extends java.util.ListResourceBundle { 
    protected java.lang.Object[][] getContents(); 
} 
+0

這樣做!謝謝。 – erdinger

+0

沒有問題如果你以前從未做過,proguard的設置可能會非常棘手。 – Nick

+0

@Nick我有同樣的錯誤,但我無法第一次使用proguard解決它幫助請! –