" JAVA.EXE"退出代码1(Proguard问题)

时间:2016-07-01 14:22:27

标签: java android xamarin proguard

在Release中构建我的Xamarin.Android应用程序时出现以下错误。

"Java.exe" exited with code 1

这是输出......

...    
1> java.io.IOException: Can't read [C:\Users\FranciscoJavier\AppData\Local\Android\android-sdk\platforms\android-24\android.jar] (Can't process class [java/nio/charset/CharsetDecoder.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))
1> at proguard.InputReader.readInput(InputReader.java:230)
1> at proguard.InputReader.readInput(InputReader.java:200)
1> at proguard.InputReader.readInput(InputReader.java:178)
1> at proguard.InputReader.execute(InputReader.java:100)
1> at proguard.ProGuard.readInput(ProGuard.java:196)
1> at proguard.ProGuard.execute(ProGuard.java:78)
1> at proguard.ProGuard.main(ProGuard.java:492)
1> Caused by: java.io.IOException: Can't process class [java/nio/charset/CharsetDecoder.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7))
1> at proguard.io.ClassReader.read(ClassReader.java:112)
1> at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
1> at proguard.io.JarReader.read(JarReader.java:65)
1> at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
1> at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
1> at proguard.InputReader.readInput(InputReader.java:226)
1> ... 6 more
1> Caused by: java.lang.UnsupportedOperationException: Unsupported class version number [52.0] (maximum 51.0, Java 1.7)
1> at proguard.classfile.util.ClassUtil.checkVersionNumbers(ClassUtil.java:140)
1> at proguard.classfile.io.LibraryClassReader.visitLibraryClass(LibraryClassReader.java:89)
1> at proguard.classfile.LibraryClass.accept(LibraryClass.java:301)
1> at proguard.io.ClassReader.read(ClassReader.java:86)
1> ... 11 more
1> Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
1>C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2118,3): error MSB6006: "java.exe" exited with code 1.
1>Done executing task "Proguard" -- FAILED.
1>Done building target "_CompileToDalvikWithDx" in project "Elfo.VisionShop.Droid.csproj" -- FAILED.
1>
1>Build FAILED.

阅读输出消息似乎ProGuard存在问题,有人知道我该怎么办?

4 个答案:

答案 0 :(得分:6)

只需从官方网站http://proguard.sourceforge.net/更新proguard (替换$ SDK_DIR / tools / proguard /中的文件夹)

答案 1 :(得分:4)

你可以在这里看到问题:

Caused by: java.io.IOException: Can't process class [java/nio/charset/CharsetDecoder.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7))

<强>解决方案: 将Java目标更改为7(1.7)。

答案 2 :(得分:2)

**Error : while running app “Java.exe” exited with code**

我通过手动覆盖java堆大小来解决这个问题:在Visual Studio中:

  1. 右键单击项目
  2. 点击 Android媒体资源
  3. 点击 Android选项
  4. 选择高级标签,然后选择高级Android构建设置
  5. 将Java Max Heap Size设置为1G(如果需要,可以设置更大)
  6. 该项目现已建成。

答案 3 :(得分:1)

遇到同样的问题,对我来说,以下工作有效(嗯,这是导致此错误的特定情况-可能不是唯一的情况):

在VS2017中将“构建日志详细程度”设置为“详细”:->工具->选项->项目和解决方案->构建并运行-> MSBuild项目构建输出详细程度->详细(最低)

开始构建。 在输出日志中(例如在输出窗口中)搜索

  

proguard.ParseException:

如果日志中包含以下内容:

  

proguard.ParseException:文件'proguard.cfg'的第1行中的未知选项'´╗┐-keep'

然后只需在文本编辑器中打开文件并保存而无需BOM。

例如在记事本++编码中->在UTF8中编码(请确保不要选择在UTF8-BOM中编码) ...并保存

重建您的项目/解决方案。它应该起作用-至少对我有用。