我正在创建一个Android SDK作为jar。它包含一些自定义视图和自定义参数。我想创建一个嵌入式解决方案,开发人员除了将jar放入libs文件夹之外不需要做任何其他操作。我无法参加一个真正的图书馆项目,这是一个商业需求。从Android的jar lib中声明命名空间
一切实际上工作正常,这不是我的第一个Android项目,发货罐。但在这一个,我需要有自定义视图的自定义属性。这意味着Android需要通过xml架构了解视图所支持的属性集。
简单的解决方案是让用户在资源文件夹中放置一个预定义的attr.xml文件。不过,我已经看到像admob这样的库没有定制attr.xml。例如,通过AdMob广告声明:
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:layout_height="wrap_content"
android:text="@string/hello"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="AD_UNIT_ID_GOES_HERE"
ads:testDevices="TEST_EMULATOR,TEST_DEVICE_ID_GOES_HERE"
ads:loadAdOnCreate="true"/>
但你并不需要在您的应用程序添加一个attr.xml。 如果我尝试使用它像他们(我曾经在一个罐子里的视图),并且具有相同的布局与上面我自己的自定义属性,那么AAPT抱怨:
错误:未找到属性资源标识符在包“XXX” “com.XXX.XXX”
我已经看着admobs jar文件,我找不到任何在com.google.ads包特别的,看起来像一个XML定义。任何想法他们如何设法做到这一点/ aapt如何知道admob的观点支持哪些属性?
谢谢!
2013-03-28
stoilkov