我正在开发Android SDK库。在这个库中,我已经声明并使用了一些活动。现在我已经尝试将库包含在应用程序中,但我注意到我必须在应用程序中声明所有库活动。这是一件非常糟糕的事情,因为在图书馆中,我已经包含了很多活动,开发人员必须在他自己的应用程序中复制所有活动。有解决方案吗?
答案 0 :(得分:25)
不,这是目前图书馆的一个已知限制。 Android开发社区中有很多关于将来解决这个问题的讨论,但是现在它限制了它们如何构建库。
来自doc
在清单文件中 应用程序项目,您必须添加 所有组件的声明 应用程序将使用它 从库项目导入。对于 例如,您必须声明任何
<activity>
,<service>
,<receiver>
,<provider>
,等等,以及<permission>
,<uses-library>
和。{ 类似的元素。
另外,Mark Murphy的出色回答here。
答案 1 :(得分:21)
更新1:使用Gradle时,现在自动完成清单合并。有关其工作原理以及如何解决冲突的更多详细信息,请参见here(感谢评论guy.gc)
原帖:
要更新此线程:现在可以进行自动合并。你只需要添加
manifestmerger.enabled=true
到你的project.properties。 Using the new "manifestmerger" property in Android也对此进行了讨论。
我知道这是一个老线程,但我偶然发现它,并希望阻止其他人(包括我在内)认为这是不可能的。在我的项目中,这一行完全足以在使用图书馆的应用程序中使用活动。