2010-10-12 43 views
9

我在一個庫項目(LIB)中有一些Java代碼(適合Android編譯),我想在另一個Android項目(A)中使用它。Android - Junit - 經測試的項目使用外部Jar

由於LIB的代碼不太可能改變,我選擇將它作爲jar添加到A.它工作正常。

我有另一個項目是一個Android儀器項目,測試第一個Android項目(B)。

所以我們現在擁有的是一個包括LIB作爲外部罐子,B測試A.

當我想從用LIB B碼訪問的問題開始。 從我看到的情況來看,除非將LIB作爲外部jar添加到B,否則它拒絕編譯(也就是說,它無法訪問A中包含的LIB jar中的代碼)。

我不願意LIB添加爲外部罐子B,因爲:

java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation

我發現Mike's question: 1.感覺不對,和 2.當運行測試它與失敗,但他的解決方案只包括使用ant腳本進行編譯,而我目前更傾向於使用Eclipse IDE來執行此項目。

任何想法我該如何解決這個問題?

+2

通過以下[本博客文章]解決(http://dtmilano.blogspot.com/2009/12/android-testing-external-libraries.html)。看起來我應該從A出口LIB,使其可以通過B. – 2010-10-12 12:21:38

+0

獲得幫助。我從主項目中導出了Android依賴項(該jar在libs文件夾中,因此無法直接導出),並且在測試項目中也必須檢查主項目。現在它可以工作。 – Ixx 2012-05-06 18:57:50

回答

1

(爲了從「未答覆」過濾器去除這個問題...)

的解決方案是這裏概述:

Android Testing: External libraries

的LIB應該從A出口,使它可從B.

+0

我原本回答了我的問題,但是我的答案被轉換成了StackOverflow系統中的某個人的評論,並提供了一個鏈接到常見問題解答。我想這個消息是我的答案並不構成正確的答案,因爲它主要是對外部鏈接的參考。 – 2013-01-20 15:50:38

+0

嗯。很公平。我理解他們的邏輯,但只有當系統也允許同時從「未答覆」過濾器中移除這些問題時。否則,它會永遠留在角落裏。 : - / – DreadPirateShawn 2013-01-20 20:02:39