以不同的软件包名称出口Android库项目资源?
-
25-10-2019 - |
题
我不确定我是否在此处的Android工具中遇到错误,或者是通过设计遇到的。问题是:我有一个导出小部件的Android库项目。作为该窗口小部件的一部分,可延长的属性在R.Stylable中导出:
图书馆项目(软件包= 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”来解决此问题,但是当然,这不是我想要的!我想念什么吗?
其他提示
对于可能仍在寻找答案的任何人:自ADT 17以来,您必须使用 http://schemas.android.com/apk/res-auto 作为图书馆项目中自定义属性的名称空间,可作为魅力:
xmnls:mylib="http://schemas.android.com/apk/res-auto"
不隶属于 StackOverflow