我有一个maven项目,它使用log4j进行日志记录。这是我的pom.xml
<!-- Log4J Bridge -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.7</version>
</dependency>
<!-- Log4J 2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
<dependency>
在我使用logger的课程中,我会:
private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
然后在方法上
LOGGER.debug("Logger works");
它工作得很好。现在,如果我从这个项目构建一个jar,将它安装在本地maven repo中,并将其导入android项目(api 22),那么在运行时就会出现这个错误
引起原因:java.lang.nullpointerexception:尝试在org.apache.logging.log4j.util.reflectionutil$privatesecuritymanager.getcallerclass(reflectionutil)获取空数组的长度。java:317)在org.apache.logging.log4j.util.reflectionutil.getcallerclass(reflectionutil。java:225)在org.apache.logging.slf4j.log4jloggerfactory.getcontext(log4jloggerfactory)。java:42)在org.apache.logging.log4j.spi.abstractloggeradapter.getlogger(abstractloggeradapter。java:42)在org.apache.logging.slf4j.log4jloggerfactory.getlogger(log4jloggerfactory。java:29)在org.slf4j.loggerfactory.getlogger(loggerfactory。java:363)在org.slf4j.loggerfactory.getlogger(loggerfactory。java:388)
我在stackoverflow上读了更多的帖子,但我还没有找到解决方案。我在manifest.xml中添加了这个
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
在调试代码时,我发现在java.lang.securitymanager类中,getsecuritycontext方法总是返回null。
public Object getSecurityContext() {
return null;
}
有什么帮助吗?
暂无答案!
目前还没有任何答案,快来回答吧!