Androidライブラリプロジェクトリソースをさまざまなパッケージ名でエクスポートしますか?
-
25-10-2019 - |
質問
ここでAndroidツールでバグに出くわしているのか、これが設計によるものなのかはわかりません。問題はこれです。ウィジェットをエクスポートするAndroidライブラリプロジェクトがあります。そのウィジェットの一部として、スタイル可能な属性はR.Styleableでエクスポートされます:
ライブラリプロジェクト(package = com.example.mylib):
<declare-styleable name="com.example.MyWidget">
<attr name="someAttr" format="integer" />
</declare-styleable>
アプリプロジェクト(package = 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