Что выводит предупреждение «Игнорирование атрибута InnerClasses» во время компиляции? - PullRequest
41 голосов
/ 22 июля 2010

Я новичок в Android и использую библиотеку Ical4j для анализа файлов ICS (календаря Outlook).

Однако, когда я создаю свое приложение в Eclipse, в консоли много раз появляется следующее предупреждение:

[2010-07-22 15:58:31 - Загрузка Календаря Google] предупреждение: Игнорирование атрибута InnerClasses для анонимного внутреннего класса, который не связан со связанным атрибутом EnclosingMethod.(Этот класс, вероятно, был создан неработающим компилятором.)

Какие последствия это имеет?Как я могу решить эту проблему?

Ответы [ 4 ]

31 голосов
/ 01 февраля 2016

Если ваше приложение и ваши библиотеки были собраны с новым JDK (7+) и вы все еще получаете это, то вы можете решить эту проблему, сказав Proguard оставить атрибут метода включения. Просто добавьте следующее в ваши правила Proguard:

-keepattributes EnclosingMethod

29 голосов
/ 22 июля 2010

Это часто встречается при включении jar-файлов. Несмотря на то, что предупреждение не о чем беспокоиться, если вы просто используете API нормально, вы должны быть в состоянии избавиться от него, скомпилировав ical4j самостоятельно из исходного кода в Eclipse (либо создайте новый jar, либо просто перетащите исходный код в свой собственная исходная папка). Хотя я должен подчеркнуть, что если у вас действительно нет проблем, об этом не стоит беспокоиться.

4 голосов
/ 14 июня 2011

У меня была такая же ошибка при использовании библиотеки ksoap2.

Чтобы избавиться от нее, я скачал DJ Java Decompiler для декомпиляции файла .jar в файлы .java.После этого я скомпилировал файлы .java в файл .jar, используя eclipse.

1 голос
/ 14 октября 2016

Обновите инструменты сборки и библиотеки поддержки до той же версии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...