我有一个Java项目(使用Maven构建),它是为JAR构建的。它位于一个Android项目中,该项目构建为AAR。然后将其放入普通的Android应用程序中。
Android应用程序具有以下Gradle
编译语句:
compile(name: 'library-debug', ext: 'aar')
不幸的是,每当我在library-debug
项目中引用一个方法时,我都会收到以下错误:
java.lang.ClassNotFoundException: Didn't find class "org.slf4j.LoggerFactory"
slf4j
在Java
项目中被引用为依赖关系,但它并未包含在Android库中,然后应该可以在Android应用中使用。
我该如何解决这个问题?
更新
要明确,这就是发生的事情
1)Java项目 - >获取内置到JAR
2)Android项目 - >包括Java项目的Jar,并构建到AAR。
3)Android App - >包括Android Project的AAR。
然而,Android应用程序无法识别Java项目中的对象,因为它们是作为Maven依赖项导入的。
答案 0 :(得分:0)
您必须将slf4j-api.jar
作为依赖项添加到您的项目中:
// https://mvnrepository.com/artifact/org.slf4j/slf4j-api
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.21'
或对于maven:
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>