我的目标:
- 将开源待办事项应用程序作为库应用程序集成到我的主应用程序中。
我已完成的步骤:
- 通过单击 Islibrary 函数将 todoapp 配置为库项目。
- 已将该库添加到我的主项目中。
- 按照 this link 在我的主 Android list 文件中添加了库项目的所有 Activity 及其完整包名称。 .
面临的问题:
我收到运行时错误,并且没有编译错误,并且库项目已完美集成。
根本原因:
当我分析Logcat时,我了解到这是由于应用程序名称冲突造成的。我的主应用程序在其 list 文件中的应用程序名称为“wish”。其 list 文件中的库项目的名称也为“Todoapplication”
在java文件中有一行代码如下:
m_app = (TodoApplication) getapplication();
此行会引发运行时异常,因为在主 list 文件中,名称参数中没有 Todoapplication。
任何人都可以帮助我解决这个问题吗?谢谢。
最佳答案
如果库项目具有自定义 Application
类,则在定义您的应用程序类时,您需要从其自定义 Application 类继承。因此,使用 WishApplication 扩展 ToDoApplication
,而不是 WishApplication 扩展 Application
。
请注意,使用自定义应用程序
通常是没有意义的。它与静态数据成员具有相同的有效范围,并且只能有一个 Application
对象。因此,我建议避免在库中使用自定义 Application
类,因为您不能有两个库都要求主机应用程序使用它们的自定义Application
类(class)。而且,对于您自己的代码,仅当自定义 Application
类明显优于普通静态数据成员时才使用它。
关于Android 应用程序名称问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569182/