Xamarin Java.exe exited with code 1 (Proguard Issue)

自作多情 提交于 2019-11-29 13:05:07
  1. Make sure that the proguard file you added is NOT a Unicode text file (U+FEFF byte order mark (BOM)) as proguard will fail...

  2. Enable diag. level logging for MSBuild and get the full error message.

  3. Proguard is being replaced by Google's R8

If you are using the latest version of Xamarin, refer to this blog post as a start:

Detailed info on the various D8/R8 project configurations can be found in the Xamarin.Android repo here:

Proguard can be a bit of a pain. The usual symptom is something like

java exited with code 1

Steps that worked for me (I had these notes stored in my solution because it just wasn't obvious). Lifted from this site

  1. Download the latest version of Proguard
  2. Find where your Android SDK is installed (something like /android-sdk/tools/proguard”). To find the sdk go to Tools->Options->Xamarin
  3. Swap out the old version of Proguard, with the new one. To do this rename the current folder to something like “Proguard-pointless” and copy your new one into the tools folder.
  4. Be sure to rename the folder for the new version to just be “proguard”.
  5. Make sure that any configuration files are also copied across into the new Proguard folder. For me this was proguard-android-optimize.txt, proguard-android.txt, and proguard-project.txt.
  6. Add a new file to the root of your Android project called proguard.cfg

    NOTE : Because Xamarin is smart, it saves this new file in UTF-8 with BOM, you will need to change this. Probably best to create the file in notepad, and then include it in your program. This is required because Proguard will not read the file unless it is in UTF-8 encoding.

  7. In VS Right Click on the file and select Properties. For Build Action, select ProguardConfiguration.
  8. Add relevant keep or dontwarn clauses to the file without the quotes (it depends on your warnings) , for example it could be something like this...
    • "-dontwarn com.google.android.gms.**"
    • "-keep class com.google.android.gms.**"
  9. Once you have done those steps, try a build once again.
  10. Hopefully this time it will be more successful. If it is not successful, check your build output and see what warnings and notes Proguard is giving you.

From this stage it is a matter of identifying what modifications you need to make to your custom Proguard file, once that works the build will be successful.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!