2014-05-03 17 views
8

Używam ProGuard 4.11 z Unity 3dUnity3D Proguard z kodem błędu powrót 1

W moim projekcie, mam obejmują jedności classes.jar w moich bibliotekami folderu

Kiedy generować apk, daje następujący wyjątek

[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 

próbowałem już za pomocą

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

w proguard-project.txt, wciąż tak samo, jak to naprawić? Dzięki za pomoc

Próbował nawet

-Trzymaj klasa com ** {. *; }

wciąż ten sam

+0

Dostaję dokładnie ten sam komunikat o błędzie. Czy zrobiłeś jakieś postępy w tej sprawie? – Eric

+0

Ten sam błąd tutaj. Nie można znaleźć obejścia –

+1

W końcu zmodyfikowałem jar proguard, wygląda na to, że jest to błąd unitiy – user782104

Odpowiedz

6

Zobacz wcześniejsze pytanie o Proguard errors with unity-classes.jar.

Jest to problem związany z klasami w bibliotece Unity: niektóre z metadanych preweryfikacji są uszkodzone. Powinieneś sprawdzić, czy jest nowsza wersja. W przeciwnym razie możesz zmodyfikować ProGuarda, aby zaakceptował uszkodzone klasy, jak to omówiono na jego issue tracker.

Należy pamiętać, że nie należy dodawać opcji -libraryjars lub -jjars do konfiguracji. Proces budowania systemu Android (Ant, Eclipse, Gradle) określa już te opcje dla ciebie.

+0

To wygląda jak konfiguracja [tag: libgdx], a nie Unity. – Tenfour04

+0

@ Tenfour04 Masz rację; mój błąd - usunę go jeszcze raz. –

3

Spróbuj dodać ten w PROGUARD-project.txt:

-keep class com.unity3d.** { *; } 
-keep class org.fmod.** { *; } 
Powiązane problemy