我為應用程序開發了自定義首選項。 它有兩個自定義屬性。 我試圖將偏好轉移到一個庫項目,以便在其他項目中重用。 我移動了Java文件以及相應的布局和attr文件。 下面是庫項目中的attr文件:<?xml version="1.0" encoding="utf-8"?>
下面是清單:
一個奇怪的Manifest 。 我生成庫項目時,Android Studio 放入 Manifest 中唯一的事情就是SDK信息,然後生成了關於它在 build.gradle 文件中的警告,所以我刪除了清單中的條目。
我使用bundleRelease任務生成文件並得到一個名為 androiduilibrary-release.aar的文件。 然後轉到需要使用這個首選項的項目,選擇"新的MODULE | 導入. JAR 或者. AAR 包",導航到,它現在是 MODULE的版本。 我在項目結構對話框中創建了一個 MODULE 依賴項,現在可以在Java代碼中引用首選項。 到目前還好.
但是,當我嘗試在XML中引用首選項時,我在自定義屬性上得到以下錯誤: "錯誤:( 9 )"包'com.mydomain.androiduilibrary'"中沒有找到屬性'minvalue'的資源標識符。 下面是 XML:
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">
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 0x7f010001
int attr minValue 0x7f010000
它的Manifest 正在被正確創建:<?xml version="1.0" encoding="UTF-8"?>
xmlns:android="http://schemas.android.com/apk/res/android" package="com.mydomain.androiduilibrary">
在調用自定義首選項時,我也會收到一條警告: 這裡不允許元素 com.mydomain.androiduilibrary.NumberPickerPreference,所以我猜這也是一個問題。
我缺少一個步驟,這將允許我從XML中引用in中的元素? 我正在使用 Android Studio 1.0.2請提前致謝。