Ich habe einen Java-Code (kompiliert schön für Android) in einem Bibliotheksprojekt (LIB), das ich in einem anderen Android-Projekt (A) verwenden möchte.
Da der Code von LIB sich kaum ändern wird, habe ich mich dafür entschieden, ihn als A-Jar zu A hinzuzufügen. Es funktioniert gut.
Ich habe ein anderes Projekt, das ein Android-Instrumentierungsprojekt ist und das erste Android-Projekt (B) testet.
Also, was wir jetzt haben, ist A einschließlich LIB als ein externes Glas, und B testet A.
Das Problem beginnt, wenn ich auf den in LIB geschriebenen B-Code zugreifen möchte. Von dem, was ich sehe, wenn ich LIB nicht als externes Jar zu B hinzufüge, weigert es sich zu kompilieren (das heißt, es kann nicht auf den Code im LIB-Jar zugreifen, der in A enthalten ist).
Ich zögere, LIB als externes Glas zu B hinzuzufügen, weil: 1. Es fühlt sich nicht richtig an, und 2. Beim Ausführen der Tests schlägt es fehl mit:
java.lang.IllegalAccessError: Klassenreferenz in vorüberprüfter Klasse wurde in unerwartete Implementierung aufgelöst
Ich habe Mikes Frage , aber seine Lösung bezieht sich nur auf das Kompilieren mit einem Ameisen-Skript, und ich bevorzuge derzeit die Eclipse-IDE für dieses Projekt.
Irgendeine Idee, wie ich dieses Problem lösen kann?
(Um diese Frage aus dem Filter "Unanswered" zu entfernen ...)
Die Lösung wird hier beschrieben:
Android-Test: Externe Bibliotheken
Die LIB sollte von A exportiert werden, um sie von B aus zugänglich zu machen.
Tags und Links android jar instrumentation junit