2011-12-19 78 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