- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了什么
我创建了一个库项目,其中包含多个带有自定义属性的自定义 View 。该库还包含用于测试 View 的测试布局。
我还阅读了:https://code.google.com/p/android/issues/detail?id=9656#c81
因此,在库的测试布局中,我确实使用了 http://schemas.android.com/apk/res-auto
命名空间。
我想做什么
然后我开始了一个新项目来使用这个库,并且在共享源代码时将这个库包含到这个项目中非常容易;在测试应用程序的主要 Activity 中,我可以使用 setContentView(R.layout.libactivity)
但是,在关闭库项目并尝试使用库的 jar 后,事实证明很困难!
我在库的/bin 文件夹中找到了库 jar - 但它只包含类,没有资源。
然后我导出了一个库的 jar - 其中包含资源文件和 .class 文件。但是这是如何使用的?
具体问题
如何膨胀我包含在库中的 libactivity
测试 Activity ?
我知道在 stackoverflow 上有类似的问题 - 但它们似乎已经过时且相互冲突,因为 Google 使将资源文件包含在库中成为可能。
最佳答案
以下是我如何在不共享源代码的情况下创建库项目。它需要两个项目:基础库和发布库。
Base Library - 这是您放置所有源代码的地方,即您所有的 Activity 、自定义 View 等。如果需要,您可以将资源文件放入此库中,但事实并非如此需要。
Release Library - 包含基础库的 bin/文件夹中的 jar 以及您要包含的任何资源文件。如果您在基础库项目中包含了任何资源文件,则需要将它们复制到该项目中。
当您想要使用您的代码时,您可以像添加任何其他共享库一样添加发布库。您的源代码将可用,但会隐藏,因为它在 jar 文件中。唯一需要注意的是,您的资源文件将可见,因为它们位于共享库项目中。不幸的是,我找不到让这些不可见的方法。
因此,为了具体说明您的情况,您将把自定义 View 放在基础库项目中。测试布局将需要进入发布库项目。
您的第三个项目(一个用于测试库的项目)将只需要对发布库的引用,您应该可以开始了。
关于android - 如何在不共享源代码的情况下创建和使用 Android 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626930/
我是一名优秀的程序员,十分优秀!