繁体   English   中英

Android Library Project作为编译的JAR库

[英]Android Library Project as compiled JAR library

我正在创建一个带有自定义视图的API。 为了使视图在XML中具有自定义属性,我想使用API​​的“Android库项目”。 通过这个我可以在attrs.xml中声明我的自定义属性的定义。

但是在将它导出到JAR文件时使用库项目时遇到问题。 引用JAR的项目会导致JAR中包含的android资源文件出现问题。 有谁知道如何做到这一点? 希望我的问题清楚。 在这种情况下,我不能让项目成为一个开源项目。

[更新]来自: http//developer.android.com/guide/developing/projects/index.html#considerations

“您无法将库项目导出到JAR文件库不能作为二进制文件(例如jar文件)分发。这是因为库项目由主项目编译以使用正确的资源ID。”

所以我猜这个答案是我的问题。 我尝试了半工作的解决方案。 它是从java源文件生成JAR并仅将Android xml资源作为attrs.xml添加到使用JAR的每个项目。 但对于我想要达到的目标而言,这不是一个好的解决方案。 我想要一个包含源和xml资源的JAR,但是没有找到解决方案。

来自code.google.com的更新问题9656:库项目不支持自定义classe的自定义XML属性 ,...如果您有r17个工具。

特别是从该链接的文本:

看看“sdk r17中的新功能”:

添加了对库中自定义属性的自定义视图的支持。 使用自定义属性的布局必须使用命名空间URI http://schemas.android.com/apk/res-auto而不是包含应用程序包名称的URI。 在构建时,此URI将替换为特定于应用程序的URI。

今天为我工作就像一个魅力! 我现在有一个包含我的自定义小部件的库,所以我可以通过引用在我的所有项目中使用它。

为了支持更快的构建时间,r16工具在Android库项目中创建自己的jar文件。 您可以使用此功能来解决此问题。 如果您想发布Android库项目但没有源代码,您可以制作包含除源代码树之外的所有内容的Android库项目的副本。 接下来,包括原始Android Library Porject(r16工具构建的那个)的jar文件。这将允许您拥有一个不需要源代码的可以分发的组件。 这个新的Android库项目的消费者需要根据需要手动将任何必要的元数据添加到他们自己的项目的AndroidManifest.xml文件中(活动,提供者,权限等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM