Подтвердить что ты не робот

Ошибка Proguard Неподдерживаемый номер версии класса

Я всегда получаю эту erroe, когда пытаюсь запутать приложение с proguard

Error:ProGuard: [MyApp] java.io.IOException: Can't read [C:\Program Files\Java\jdk1.8.0\jre\lib\rt.jar] (Can't process class [com/oracle/net/Sdp$1.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))

Я уже обновил Proguard и проверил файл конфигурации проекта, но всегда ту же ошибку. Я использую последнюю версию Intellij IDEA

4b9b3361

Ответ 1

Кажется, Proguard фактически не поддерживает Java 8. Вы должны использовать JDK версии 7.

РЕДАКТИРОВАТЬ-1

Я перекомпилировал Proguard для поддержки классов JDK 8, не поддерживает новые возможности Java 8, но если ваш код не использует новый синтаксис Java 8 (например, Lambda Expression), он должен работать без проблем. Протестировано с некоторыми проектами android.

Чтобы заменить файл proguard.jar на

android-sdk\tools\proguard\ 

с содержанием ЭТОТ АРХИВ

РЕДАКТИРОВАТЬ-2

Недавно был выпущен официальный Proguard 5, который должен решить эту проблему. Вы можете скачать это из ЗДЕСЬ

Ответ 2

ProGuard 5.0 (выпущен в августе 2014 года) поддерживает Java 8.

Ответ 3

ProGuard еще не обновлен для поддержки Java 8.

Проблема с уже была поднята против ProGuard.

Эрик Лафортун (разработчик ProGuard) отметил еще в октябре 2013 года

Я очень занят на данный момент, так что реалистично я не смогу завершить это в краткосрочной перспективе, извините. Тем не менее я слежу за развитием событий.

Он также сказал

ProGuard, вероятно, работает с файлами классов, которые используют только старые функции, если вы меняете или отключите ClassUtil # checkVersionNumbers.