作者:我_纯情至上 | 来源:互联网 | 2023-05-21 19:30
我为应用程序开发了一个自定义首选项.它有两个自定义属性.我正在尝试将Preference移动到库项目以在其他项目中重用.我将Java文件与相应的布局和attr XML文件一起移动.这是库项目中的attr文件:
这是清单:
一个奇怪的表现肯定.当我生成库项目时,Android Studio中唯一放入清单的是SDK信息,然后生成一个警告,它已经在build.gradle文件中指定了,所以我删除了清单中的条目.
我使用bundleRelease任务生成AAR文件,并获取名为androiduilibrary-release.aar的文件.然后我转到需要使用此Preference的项目并选择"New Module | Import .JAR或.AAR Package",导航到AAR,它现在在我的项目中作为名为androiduilibrary-release的模块.我在Project Structure对话框中创建了一个模块依赖项,现在可以在Java代码中引用Preference.到现在为止还挺好.
但是,当我尝试在XML中引用Preference时,我的自定义属性出现以下错误:"错误:(9)在"com.mydomain.androiduilibrary"包中找不到属性"minValue"的资源标识符.这是XML:
我可以查看AAR内部,看到值是在R.txt中填充的:
int attr maxValue 0x7f010001
int attr minValue 0x7f010000
它的清单正确创建:
在调用自定义首选项时我也会收到警告:"此处不允许使用元素com.mydomain.androiduilibrary.NumberPickerPreference",所以我猜这也是一个问题.
我是否缺少一个允许我在XML中引用AAR元素的步骤?我正在使用Android Studio 1.0.2.提前致谢.
1> John Riehl..:
从这篇文章中解决了它,在它讨论外部库的底部.本质上,当在代码中引用AAR元素时,您可以使用AAR清单中指定的包来实现,但是当引用XML中的AAR元素时,您引用项目的命名空间(而不是AAR).