2010-10-12 5 views
9

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?

+2

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. –

+0

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

Antwort

1

(Um diese Frage aus den "Unbeantwortet" Filter zu entfernen ...)

Die Lösung wird hier beschrieben:

Android Testing: External libraries

Die LIB von A exportiert werden sollen, es zu machen zugänglich von B.

+0

Ich habe meine Frage ursprünglich beantwortet, aber meine Antwort wurde von jemandem im StackOverflow-System in einen Kommentar umgewandelt und lieferte mir einen Link zur FAQ. Ich denke, die Nachricht war, dass meine Antwort keine richtige Antwort ist, da es sich meistens um einen Verweis auf den externen Link handelt. –

+0

Hmm. Meinetwegen. Ich verstehe ihre Logik, aber nur, wenn das System auch zulässt, dass solche Fragen gleichzeitig aus dem Filter "Unanswered" entfernt werden. Sonst bleibt es für immer in der Schwebe. : - / – DreadPirateShawn