Android Can';无法在XML中从AAR中找到资源标识符

Android Can';无法在XML中从AAR中找到资源标识符,android,android-studio,android-library,aar,Android,Android Studio,Android Library,Aar,我为应用程序开发了一个自定义首选项。它有两个自定义属性。我试图将首选项转移到库项目,以便在其他项目中重用。我移动了Java文件以及相应的布局和attr XML文件。以下是库项目中的attr文件: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="NumberPickerPreference" > <attr name="minVa

我为应用程序开发了一个自定义首选项。它有两个自定义属性。我试图将首选项转移到库项目,以便在其他项目中重用。我移动了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>
并且正确创建了其清单:

<?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。提前感谢。

从文章中解决了这个问题,在底部它讨论了外部库。本质上,当在代码中引用AAR元素时,您使用AAR清单中指定的包进行引用,但当在XML中引用AAR元素时,您引用的是项目的名称空间(而不是AAR)

非常感谢!这虽然很奇怪,但效果很好。我试图使用net.mydomain.mylib.R.string.foo引用aar库中的字符串,但没有成功。根据您的回答,R.string.foo(默认名称空间是项目的名称空间)是有效的!
<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" />
int attr maxValue 0x7f010001
int 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>