Ошибка 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
Ответы
Ответ 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.
Ответ 4
Существует преемник плагина ProGuard Maven для pyx4me на github с поддержкой ProGuard 5.2, поэтому поддержка Java 8:
https://github.com/wvengen/proguard-maven-plugin
http://wvengen.github.io/proguard-maven-plugin/
Cheers,
Эхо