android Framework层添加资源方式

最近工作中,在移植输入法去新的分支的时候,发现输入法在弹出过程会强死,这是因为调用framework层的一个layout时查找不到;于是找到这个资源,在framework层中添加了这个资源,但是发现编译后输入法仍然找不到这个资源。通过网络搜索,找到了原因。在系统的framework/base/core/res/res中添加字串等资源,需要在framework/base/core/res/res/values/symbols.xml中同步添加资源字串,否则编译会出错。
比如在strings.xml中添加字串:

    <string name="close_adb_title">Turn off ADB Debug</string>

那么就需要在symbols.xml中添加:

    `<java-symbol type="string" name="close_adb_title" />`  

layout也同理。 在framework层中,symbols.xml 和 public.xml的作用是一样的。到4.2才分成两个文件的,public.xml定义的资源进入android.R.java symbols.xml(共有资源),symbols.xml定义的资源进入com.android.internal.R.java(私有资源),并不是严格定义。在一个xml文件里也可以通过不同的标签来控制资源是公共的还是私有的。记得在使用的时候,R.还是internal.R.需要分清楚,看你加的资源在哪个包里

猜你喜欢

转载自blog.csdn.net/u011938614/article/details/53747711