MyClass.java
enthält, ist ein Teil des Projekts B und erzeugt B.jar
JAR-Datei, die eine Klasse aus der Abhängigkeit
Projekt A B als eine Abhängigkeit aufweist. Es produziert A.jar
Projekt A baut in Ordnung (also die Abhängigkeit bei der Kompilierung aufgelöst wird)
Meine Android App öffnet die A.jar Datei und versucht MyClass mit Reflexion laden (dies dies zu tun ist Weg, Gründe sind hier kompliziert zu erklären).
Mein Problem ist, bekomme ich diesen Fehler in Laufzeit:
String java.lang.ClassNotFoundException: Nicht Klasse "com.foo.MyClass" auf Pfad: DexPathList [[ZIP-Datei "A.jar"], nativeLibraryDirectories = [/ Verkäufer/lib,/system/lib]]
PS: Wenn ich Quellcode von Projekt B in A kopieren und bauen A.jar das Programm es findet. Aber ich möchte das Kopieren von Quellcode vermeiden.
Gibt es eine Möglichkeit, Maven zu sagen, eine Klasse aus einer Abhängigkeit in die resultierende JAR-Datei aufzunehmen?
Wenn Sie zum Ausdruck B als Abhängigkeit von A über Maven, sollte dies bereits funktionieren - beide Gläser sollten auf Ihrer Runtime-Classpath. –
@OliverCharlesworth Ja, ich mache es, aber es ist nicht – Caner
Sie müssen eine ausführbare jar, wie hier gezeigt http://stackoverflow.com/questions/574594/how-can-i-create-an-executable erstellen -jar-with-dependencies-using-maven oder stellen Sie sicher, dass die Abhängigkeiten zur Laufzeit im Klassenpfad sind. – Tunaki