我有一个应用程序,我现在想将一部分分成一个库项目,所以我可以在其他几个地方重新使用它。重新使用的东西是一个自定义视图,它使用来自这个答案的代码(http://stackoverflow.com/questions/1258275/vertical-rotated-label-in-android),并对其进行了一些调整。无论如何,可调整资源不能正常工作。 attr.xml看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="VerticalTextView">
<attr name="text" format="string" />
<attr name="textColor" format="color" />
<attr name="textSize" format="dimension" />
<attr name="rotateLeft" format="boolean" />
</declare-styleable>
</resources>
并在库项目的布局文件中引用它。尝试编译主项目时,我在Eclipse中遇到以下错误:
[2010-12-20 23:29:38 - MyApp] C:\ Library \ res \ layout \ main.xml:124:错误:找不到包'com.mydomain中属性'text'的资源标识符。在MyLibrary'
我很困惑。我已经尝试了所有我能想到的东西让它发挥作用,而我还没有找到神奇的组合。如何使可调整资源在库项目中工作?
答案 0 :(得分:6)
该问题已在ADT 17中修复: 要使用库项目中定义的自定义样式,必须使用 http://schemas.android.com/apk/res-auto 名称空间,因此,请考虑问题中的示例:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto" ... >
...
<com.foo.bar.VerticalTextView
custom:textColor="#cafebabe"
custom:rotateLeft="true"
... >
答案 1 :(得分:1)
本月早些时候,我没有尝试过在图书馆软件包中工作,最终放弃了。为了解决这种情况,我刚刚将源文件添加为“链接”(仍然是项目的外部文件并共享),这对我来说很有用。