2011-04-29 41 views
2

我正在嘗試創建一個android庫項目,這樣我就可以使用共享代碼創建一個lite和完整版本的應用程序。這裏按照以下指示:Android庫項目 - 在運行時無法從庫項目中找到類?

http://developer.android.com/guide/developing/projects/projects-eclipse.html 
http://blog.donnfelker.com/2010/08/05/howto-android-full-and-lite-versions/ 

運行我的精簡版的版本拋出在運行時一個ClassNotFoundException,因爲它無法找到共享的項目活動類。就好像項目鏈接(屬性 - > java構建路徑 - >項目 - >添加)在運行時實際上並不包含任何.class文件。

其他人遇到這個問題?我不想從我的圖書館項目中導出一個.jar文件,因爲通過這種其他方法,我們可以共享活動,而且這是理想的。我的「精簡版」的項目,它引用庫項目活動的清單:

<application 
    android:name="com.me.test.lib.App"> 
    <activity 
    android:name="com.me.test.lib.ActivityMain" > 

它不能既找不到App類或ActivityMain類是庫項目的一部分。

感謝


例外 - 在ComponentInfo路徑看起來錯誤,它應該被嵌套這樣?

04-29 16:49:01.759: ERROR/AndroidRuntime(2349): 
    java.lang.RuntimeException: Unable to instantiate activity 
    ComponentInfo{ 
    com.me.test.lite/com.me.test.lib.ActivityMain}: 
    java.lang.ClassNotFoundException: com.me.test.lib.ActivityMain 
    in loader dalvik.system.PathClassLoader[/data/app/com.me.test.lite-2.apk] 

回答

13

我試圖訪問我的工具箱庫中的活動時遇到此問題。確保使用該庫的項目在其自己的清單中放置任何活動。該工具包實際上並未在其清單中指定活動。聽起來你就是這麼做的。鏈接Android項目的庫與java項目不同。

對於庫項目

右鍵單擊Eclipse項目,選擇屬性。轉到Android標籤。檢查,說:「是圖書館」

對於應用程序使用的庫

右鍵單擊Eclipse項目,選擇屬性對話框。轉到Android標籤。添加庫項目作爲參考

+0

呃好吧我通過(屬性 - > java構建路徑 - >項目 - >添加)作爲項目添加它。現在感謝它的工作! – user291701 2011-04-29 21:01:26

+0

通過這樣做只有它引用活動,服務等,如何引用庫項目中的其他java類,我的意思是我自己定義的類,例如一些實用程序類,幫助類 – Sam 2011-09-02 06:55:43

+0

@Sam - 使用普通的Java構建路徑配置 – Spidy 2011-09-04 22:17:46