[英]Why Android cannot deal with Resources name conflict between Project and Library?
[英]Exporting Android library project resources under different package name?
我不確定我是否在這里遇到Android工具中的錯誤,或者是否是設計使然。 問題是這樣的:我有一個導出小部件的Android庫項目。 作為該小部件的一部分,可樣式化的屬性以R.styleable導出:
庫項目(程序包= com.example.mylib):
<declare-styleable name="com.example.MyWidget">
<attr name="someAttr" format="integer" />
</declare-styleable>
應用項目(程序包= 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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.