我不确定我是否在这里遇到了 Android 工具中的错误,或者这是否是设计使然。问题是这样的:我有一个导出小部件的 Android 库项目。作为该小部件的一部分,可样式化属性在 R.styleable 中导出:
库项目(包 = com.example.mylib):
<declare-styleable name="com.example.MyWidget">
<attr name="someAttr" format="integer" />
</declare-styleable>
应用项目(包 = com.example.myapp):
<LinearLayout xmnls:mylib="http://schemas.android.com/apk/res/com.example.mylib">
<com.example.MyWidget android:id="..." mylib:someAttr="1" />
</LinearLayout>
问题是,someAttr
只要库和应用程序使用相同的包标识符,该属性似乎只对 Android/ADT 可见!在这种情况下,它们不会,并且 ADT 失败并出现以下错误:
在包“com.example.mylib”中找不到属性“someAttr”的资源标识符
就像我说的,我可以通过将应用程序的包名称更改为“com.example.mylib”来解决这个问题,但这当然不是我想要的!我错过了什么吗?