2016-08-17 2 views
0

Ich habe ein Java-Projekt (das mit Maven erstellt wird), die in einem JAR erstellt wird. Dies sitzt in einem Android-Projekt, das zu einem AAR gebaut wird. Dies wird dann in eine normale Android-App eingefügt.ClassNotFoundException mit zwei Projekten

Die Android App hat folgende Gradle Kompilierung Anweisung:

compile(name: 'library-debug', ext: 'aar') 

Leider aber wenn ich eine Methode innerhalb des library-debug Projekt verweisen, erhalte ich folgende Fehlermeldung:

java.lang.ClassNotFoundException: Didn't find class "org.slf4j.LoggerFactory" 

slf4j is being Wird als Dependency im Projekt Java referenziert, aber nicht in die Android-Bibliothek aufgenommen, die dann in der Android-App verfügbar sein sollte.

Wie kann ich dieses Problem lösen?

aktualisieren

klar zu sein, das ist, was

1) Java-Projekt läuft -> ruft zu einer JAR gebaut

2) Android Projekt -> beinhaltet das Jar Java-Projekt und wird zu einem AAR gebaut.

3) Android App -> Enthält die AAR des Android-Projekts.

Die Android App erkennt die Objekte im Java-Projekt jedoch nicht, da sie als Maven-Abhängigkeiten importiert wurden.

+0

Warum das Maven-Tag? – Jens

+0

@Jens Hallo. Das Java-Projekt wurde mithilfe von Maven als Abhängigkeitsmanager erstellt. – Subby

+0

Aber Sie zeigen eine Graple geschnippelt? – Jens

Antwort

0

Sie müssen die slf4j-api.jar als Abhängigkeit zu Ihrem Projekt hinzufügen:

// https://mvnrepository.com/artifact/org.slf4j/slf4j-api 
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.21' 

oder für Maven:

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.21</version> 
</dependency> 
+0

Wenn ich das mache und neu bilde, wird es sich über andere Bibliotheken beschweren. Es beschwert sich einzeln über sie. Der Punkt ist - Weil das Android-Projekt das Java-Projekt als JAR enthält, warum erkennt die Android-App nicht slf4j und andere Objekte? – Subby

+0

Wenn Sie ein Glas mit Maven bauen, wird das Glas der dritten Partei nicht enthalten sein. Wenn Sie die JAR-Dateien verwenden möchten, müssen Sie das Schatten-Plugin verwenden – Jens

+0

Überprüfen Sie mein Update, um ein klareres Bild von dem zu bekommen, was vor sich geht. – Subby

Verwandte Themen