Lint находит предупреждения в log4j, используемом в проекте Android

Я использую log4j в проекте Android, зависимость определена в градиенте проекта, например:

compile 'log4j:log4j:1.2.16'

Когда происходит Lint check, анализатор сообщает об ошибке InvalidPackage:

../../../../../../../.gradle/caches/modules-2/files-2.1/log4j/log4j/1.2.17/5af35056b4d257e4b64b9e8069c0746e8b08629f/log4j-1.2.17. jar: неверная ссылка на пакет в библиотеке; не входит в Android: java.awt. Ссылка на org.apache.log4j.chainsaw.ControlPanel. ../../../../../../../.gradle/caches/modules-2/files-2.1/log4j/log4j/1.2.17/5af35056b4d257e4b64b9e8069c0746e8b08629f/log4j-1.2.17. jar: неверная ссылка на пакет в библиотеке; не входит в Android: java.awt.event. Ссылка на org.apache.log4j.chainsaw.Main.1.

....

Как я могу исправить это лучше? Lint предлагает подавить это предупреждение по идентификатору, но это означает подавление всех предупреждений по типу, я прав? Похоже, это не лучшее решение ... Может быть, как-нибудь указать lint, чтобы не проверять пакет log4j?


person AndreyMan    schedule 18.06.2014    source источник


Ответы (1)


Сам awt не поддерживается в Android.

Вместо этого используйте встроенную графику Android, как описано в Как добавить java. пакет awt.image в Android и другие вопросы, например 25488832: using-awt-classes-in-android

Конечно, это мало помогает, если вы полагаетесь на библиотеку, которая полагается на awt. Возможно, существует Android-версия такой библиотеки.

(Вы можете нормально использовать части библиотеки, которые вызывают эту ошибку. Вы можете использовать только те части библиотеки, которые не используют awt, иначе RTE. Для этого ваш процесс сборки должен выдерживать реакцию со стороны Lint. Есть вероятно, более безопасные способы обойти это.)

person ElHombre55    schedule 03.07.2015