我在 Android 项目中使用 log4j,在项目 gradle 中定义的依赖项如下:
compile 'log4j:log4j:1.2.16'
当 Lint 检查发生时,分析器报告“InvalidPackage”错误:
../../../../../../../.gradle/caches/modules-2/files-2.1/log4j/log4j/1.2.17/5af35056b4d257e4b64b9e8069c0746e8b08629f/log4j-1.2.17.jar: Invalid package reference in library; not included in Android: java.awt. Referenced from org.apache.log4j.chainsaw.ControlPanel. ../../../../../../../.gradle/caches/modules-2/files-2.1/log4j/log4j/1.2.17/5af35056b4d257e4b64b9e8069c0746e8b08629f/log4j-1.2.17.jar: Invalid package reference in library; not included in Android: java.awt.event. Referenced from org.apache.log4j.chainsaw.Main.1.
....
我怎样才能更好地解决这个问题? Lint 建议按 id 抑制此警告,但这意味着按类型抑制所有警告,对吗?这看起来不是最好的解决方案...... 也许有某种方法可以指定 lint 不检查 log4j 包?
最佳答案
awt 本身在 Android 中不受支持。
而是使用 native Android 图形,详见 How to add java.awt.image package in Android和其他问题,如 25488832:using-awt-classes-in-android
当然,如果您依赖依赖 awt 的库,这并没有多大帮助。可能有此类库的 Android 版本。
(您可以使用引发此错误的部分库。您只能使用不使用 awt 的部分库,否则,RTE。为此,您的构建过程必须容忍来自 Lint 的 react . 可能有更安全的方法解决这个问题。)
关于android - Lint 在 Android 项目中使用的 log4j 中发现警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283300/