1

我做了什么

我创建了一个库项目,其中包含几个带有自定义属性的自定义视图。该库还包含一个测试布局来测试视图。

我还阅读了:https ://code.google.com/p/android/issues/detail?id=9656#c81

因此,在库的测试布局中,我确实使用了http://schemas.android.com/apk/res-auto命名空间。

我正在尝试做的事情

然后我开始了一个新项目来使用该库,并且在共享源代码时将库包含到该项目中非常容易;在测试应用程序的主要活动中,我可以轻松地使用setContentView(R.layout.libactivity)

但是,在关闭库项目并尝试使用库的 jar 之后证明是困难的!

我在库的 /bin 文件夹中找到了库 jar - 但它只包含类而没有资源。

然后我导出了一个库 jar - 其中包含资源文件以及 .class 文件。但是这是如何使用的?

具体问题

如何夸大libactivity我包含在库中的测试活动?

我知道在 stackoverflow 上有类似的问题 - 但它们似乎已经过时且相互冲突,因为谷歌可以在库中包含资源文件。

4

2 回答 2

2

以下是我如何在不共享源代码的情况下创建库项目。它需要两个项目:基础库和发布库。

基本库- 这是您放置所有源代码的地方,即您的所有活动、自定义视图等。如果您愿意,您可以将资源文件放入此库中,但这不是必需的。

发布库- 包含来自基本库的 bin/ 文件夹的 jar 以及您想要包含的任何资源文件。如果您在基础库项目中包含了任何资源文件,则需要将它们复制到该项目中。

当你想使用你的代码时,你添加发布库,就像添加任何其他共享库一样。您的源代码将可用,但隐藏,因为它位于 jar 文件中。唯一需要注意的是,您的资源文件将可见,因为它们位于共享库项目中。不幸的是,我无法找到一种方法来保持这些不可见。

因此,为了具体说明您的情况,您将自定义视图放置在基础库项目中。测试布局需要进入发布库项目。

您的第三个项目(一个用于测试库的项目)只需要对发布库的引用,您应该一切顺利。

于 2013-03-26T02:49:49.843 回答
0

哈...这是一个很好的问题,如果您要使用xmls 导出您的库项目,那没关系...

然后将导出的库 Jar 添加到启动项目的 libs 文件夹中,您会在 R 文件中找到这些 XML。

让我知道它是否有效...

于 2013-03-25T23:56:22.393 回答