与Unity3d Proguard返回错误代码1

我正在使用Unity 3d的proguard 4.11

在我的项目中,我在我的libs文件夹中包含了unity-classes.jar

当我生成的apk,它会给出以下例外

[2014-05-03 14:33:41 - FBUnityPlayerActivity] Proguard returned with error code 1. See console [2014-05-03 14:33:41 - FBUnityPlayerActivity] java.io.IOException: Can't read [C:\Users\TAT\Desktop\quick\FBUnityPlayerActivity\libs\unity-classes.jar] (Can't process class [com/unity3d/player/UnityPlayer.class] (Unknown verification type [195] in stack map frame)) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.InputReader.readInput(InputReader.java:232) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.InputReader.readInput(InputReader.java:202) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.InputReader.readInput(InputReader.java:180) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.InputReader.execute(InputReader.java:78) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.ProGuard.readInput(ProGuard.java:196) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.ProGuard.execute(ProGuard.java:78) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.ProGuard.main(ProGuard.java:483) [2014-05-03 14:33:41 - FBUnityPlayerActivity] Caused by: java.io.IOException: Can't process class [com/unity3d/player/UnityPlayer.class] (Unknown verification type [195] in stack map frame) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.io.ClassReader.read(ClassReader.java:112) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.io.JarReader.read(JarReader.java:65) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.InputReader.readInput(InputReader.java:228) [2014-05-03 14:33:41 - FBUnityPlayerActivity] ... 6 more [2014-05-03 14:33:41 - FBUnityPlayerActivity] Caused by: java.lang.RuntimeException: Unknown verification type [195] in stack map frame [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.io.ProgramClassReader.createVerificationType(ProgramClassReader.java:890) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.io.ProgramClassReader.visitFullFrame(ProgramClassReader.java:659) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.attribute.preverification.FullFrame.accept(FullFrame.java:114) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.io.ProgramClassReader.visitStackMapTableAttribute(ProgramClassReader.java:452) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.attribute.preverification.StackMapTableAttribute.accept(StackMapTableAttribute.java:71) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.io.ProgramClassReader.visitCodeAttribute(ProgramClassReader.java:422) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.attribute.CodeAttribute.accept(CodeAttribute.java:101) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.io.ProgramClassReader.visitProgramMethod(ProgramClassReader.java:200) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:142) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.classfile.ProgramClass.accept(ProgramClass.java:346) [2014-05-03 14:33:41 - FBUnityPlayerActivity] at proguard.io.ClassReader.read(ClassReader.java:91) [2014-05-03 14:33:41 - FBUnityPlayerActivity] ... 12 more 

我已经尝试过使用

 -libraryjars /libs/unity-classes.jar -keep class com.unity3d.** { *; } -dontwarn com.unity3d.** 

在proguard-project.txt中,还是一样的,该如何解决呢? 感谢您的帮助

甚至尝试

保持类com。** {*; }

还是一样

Solutions Collecting From Web of "与Unity3d Proguard返回错误代码1"

使用unity-classes.jar查看有关Proguard错误的早期问题。

这是Unity库中的类的问题:某些预validation元数据已损坏。 你应该检查是否有更新的版本。 否则,您可以修改ProGuard以接受腐败类,如问题跟踪器中讨论的那样。

请注意,您不应将-libraryjars或-injars添加到您的configuration中。 Android构build过程(Ant,Eclipse,Gradle)已经为您指定了这些选项。

尝试添加这个在你的proguard-project.txt中:

 -keep class com.unity3d.** { *; } -keep class org.fmod.** { *; }