2011-12-19 122 views
2

我的目標:Android應用程序的名稱問題

  1. 集成的開源todoapplication作爲一個庫應用到我的主要應用。

步驟我已經完成:

  1. 點擊Islibrary功能配置的todoapp作爲庫項目。
  2. 增加了庫我的主要項目。
  3. 增加了庫項目的所有活動,他們全包名稱在我的主要的Android清單文件作爲每this link

面臨問題:

我得到一個運行時錯誤,也沒有comilation錯誤和庫項目完美結合。

根本原因:

當我分析logcat的,我的理解是由於應用程序的名稱衝突。我的主要應用程序有一個應用程序的名稱在其清單文件中的「願望」。在其清單文件中的庫項目也有一個名字爲「Todoapplication」

在Java文件存在的代碼如下一行:

m_app = (TodoApplication) getapplication(); 

此行拋出運行時異常,因爲在主清單文件中name參數中沒有Todoapplication。

任何人都可以,請幫助我的情況。謝謝。

回答

4

如果庫項目具有自定義Application類,則在定義您的類時,您將需要從其自定義Application類繼承。因此,有WishApplication extends ToDoApplication,而不是WishApplication extends Application

注意,使用自定義Application經常是毫無意義的。它與靜態數據成員具有相同的有效範圍,並且只能有一個Application對象。因此,我建議避免在庫中使用自定義的Application類,因爲不能使兩個庫都要求主機應用程序使用定製Application類。而且,對於您自己的代碼,只有在某種明顯優於普通靜態數據成員的情況下,才能使用自定義的Application類。

+0

嗨CommonsWare - 你的建議像一個魅力工作。非常感謝您的建議和幫助。 – Harry 2011-12-20 03:04:34