Что такое предупреждающий вывод "Игнорирование InnerClasses" во время компиляции?
Я новичок в Android и использую библиотеку Ical4j
для разбора файлов ICS (Outlook Calendar).
Однако, когда я создаю свое приложение в Eclipse, в консоли много раз появляется предупреждение:
[2010-07-22 15:58:31 - Google Calendar Upload] предупреждение: Игнорирование атрибута InnerClasses для анонимного внутреннего класса, который не связан с ассоциированным атрибутом EnclosingMethod. (Этот класс, вероятно, был создан сломанным компилятором.)
Какие последствия у этого есть? Как я могу это решить?
Ответы
Ответ 1
Это довольно часто встречается при включении файлов jar. Хотя предупреждение не о чем беспокоиться, если вы просто используете API в обычном режиме, вы должны быть в состоянии избавиться от них, скомпилировав ical4j самостоятельно из источника в Eclipse (либо создайте новую банку, либо просто поместите источник в свой собственная исходная папка). Хотя я должен подчеркнуть, что, если у вас нет проблем, это не о чем беспокоиться.
Ответ 2
Если ваше приложение и ваши библиотеки все были созданы с помощью нового JDK (7+), и вы все еще получаете это, вы можете исправить эту проблему, сообщив Proguard о сохранении атрибута вложенного метода. Просто добавьте следующие правила Proguard:
-keepattributes EnclosingMethod
Ответ 3
У меня была такая же ошибка при использовании библиотеки ksoap2.
Чтобы избавиться от него, я загрузил DJ Java Decompiler для декомпиляции файла .jar в .java файлы.
После этого я скомпилировал файлы .java в файл .jar, используя eclipse.
Ответ 4
Обновите инструменты сборки и поддерживайте библиотеки в той же версии