android – 无法在XML中找到AAR中的资源标识符

android – 无法在XML中找到AAR中的资源标识符,第1张

概述我为应用程序开发了一个自定义首选项.它有两个自定义属性.我正在尝试将Preference移动到库项目以在其他项目中重用.我将 Java文件与相应的布局和attr XML文件一起移动.这是库项目中的attr文件: <?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="NumberPickerPr 我为应用程序开发了一个自定义首选项.它有两个自定义属性.我正在尝试将Preference移动到库项目以在其他项目中重用.我将 Java文件与相应的布局和attr XML文件一起移动.这是库项目中的attr文件:
<?xml version="1.0" enCoding="utf-8"?><resources>    <declare-styleable name="NumberPickerPreference" >        <attr name="minValue" format="integer" />        <attr name="maxValue" format="integer" />    </declare-styleable></resources>

这是清单:

<manifest package="com.mydomain.androIDuilibrary"></manifest>

一个奇怪的表现肯定.当我生成库项目时,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:

<PreferenceScreen    xmlns:androID="http://schemas.androID.com/apk/res/androID"     androID:title="@string/location_service_settings_preference_header_Title"    xmlns:custom="http://schemas.androID.com/apk/res/com.mydomain.androIDuilibrary"><com.mydomain.androIDuilibrary.NumberPickerPreference    androID:title="@string/update_interval_preference_Title"    androID:key="@string/update_interval_preference_key"    androID:defaultValue="@integer/update_interval_preference_default"    androID:summary="@string/update_interval_preference_summary"    custom:minValue="@integer/update_interval_preference_min"    custom:maxValue="@integer/update_interval_preference_max"    androID:dialogMessage="@string/update_interval_preference_dialog_message"    androID:dialogtitle="@string/update_interval_preference_Title" />

我可以查看AAR,看看值是否填充在R.txt中:

int attr maxValue 0x7f010001int attr minValue 0x7f010000

它的清单正在被正确创建:

<?xml version="1.0" enCoding="UTF-8"?><manifest androID:versionname="1.0" androID:versionCode="1"    xmlns:androID="http://schemas.androID.com/apk/res/androID" package="com.mydomain.androIDuilibrary">    <uses-sdk androID:targetSdkVersion="21" androID:minSdkVersion="11"/></manifest>

在调用自定义首选项时我也会收到警告:“此处不允许使用元素com.mydomain.androIDuilibrary.NumberPickerPreference”,所以我猜这也是一个问题.

我是否缺少一个允许我在XML中引用AAR元素的步骤?我正在使用AndroID Studio 1.0.2.提前致谢.

@H_301_28@解决方法 解决了它从 this帖子,在底部,它谈论外部库.本质上,当在代码中引用AAR元素时,您可以使用AAR清单中指定的包来实现,但是当引用XML中的AAR元素时,您引用项目的命名空间(而不是AAR).@H_301_28@ @H_301_28@ 总结

以上是内存溢出为你收集整理的android – 无法在XML中找到AAR中的资源标识符全部内容,希望文章能够帮你解决android – 无法在XML中找到AAR中的资源标识符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1136698.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存