Ich habe einige Java-Code (kompiliert schön für Android) in einem Bibliotheksprojekt (LIB), die ich in einem anderen Android-Projekt (A) verwenden möchte.Android - Junit - Tested Projekt verwendet externe Jar
Da der Code von LIB sich kaum ändern wird, entschied ich mich dafür, ihn als ein Glas 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 externes Glas und B-Tests A.
Das Problem beginnt, wenn ich von der B-Code in LIB geschrieben zugreifen möchten. 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 nur ungern bin LIB als externe jar hinzuzufügen nach B, weil: 1. Es fühlt sich nicht richtig, und 2. Wenn die Tests laufen sie nicht mit:
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
I Mike's question gefunden , aber seine Lösung deckt nur das Kompilieren mit einem ant-Skript ab, und ich bevorzuge derzeit die Eclipse-IDE für dieses Projekt.
Eine Idee, wie kann ich dieses Problem lösen?
Gelöst durch folgende [Dieser Blog-Eintrag] (http://dtmilano.blogspot.com/2009/12/android-testing-external-libraries.html). Es scheint, dass ich _LAB von A _exported haben sollte, um es von B. zugänglich zu machen. –
Das half. Ich habe die Android-Abhängigkeiten aus dem Hauptprojekt exportiert (das jar befand sich im libs-Ordner, daher war es nicht möglich, es direkt zu exportieren), und im Testprojekt musste ich auch das Hauptprojekt überprüfen. Jetzt funktioniert es. – Ixx