Android:图书馆项目和可投影资源

时间:2010-12-22 04:59:29

标签: android eclipse

我有一个应用程序,我现在想将一部分分成一个库项目,所以我可以在其他几个地方重新使用它。重新使用的东西是一个自定义视图,它使用来自这个答案的代码(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'

我很困惑。我已经尝试了所有我能想到的东西让它发挥作用,而我还没有找到神奇的组合。如何使可调整资源在库项目中工作?

2 个答案:

答案 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)

本月早些时候,我没有尝试过在图书馆软件包中工作,最终放弃了。为了解决这种情况,我刚刚将源文件添加为“链接”(仍然是项目的外部文件并共享),这对我来说很有用。