android库项目和活动

ets*_*s23 22 android android-manifest android-library android-activity

我正在开发一个Android SDK库.在这个库中,我已经声明并使用了一些活动.现在我已经尝试将库包含在应用程序中,但我注意到我必须在应用程序中声明所有库活动.这是一件非常糟糕的事情,因为在图书馆中,我已经包含了很多活动,开发人员必须在他自己的应用程序中复制所有活动.这有解决方案吗?

Nic*_*ion 26

不,这是目前图书馆的一个已知限制.在Android开发社区中有很多关于将来解决这个问题的讨论,但是现在它限制了它们如何构建库.

来自doc

在应用程序项目的清单文件中,必须添加应用程序将从库项目导入的所有组件的声明.例如,您必须声明任何 <activity>,<service>,<receiver>, <provider>,等等,还有 <permission>,<uses-library>和相似的元素.

此外,Mark Murphy 在这里也给出了很好的答案.


Ste*_*ack 22

更新1:使用Gradle时,Manifest合并现在自动完成.关于它如何工作以及如何解决冲突的更多细节可以在这里找到(感谢评论guy.gc)

原帖:

要更新此线程:现在可以进行自动合并.你只需要添加

manifestmerger.enabled=true
Run Code Online (Sandbox Code Playgroud)

到您的project.properties.在Android中使用新的"manifestmerger"属性也讨论了这一点.

我知道这是一个老线程,但我偶然发现它并希望阻止其他人(包括我在内)认为这是不可能的.在我的项目中,这一行完全足以利用图书馆消费App中的活动.