Android framework/base/core/res 中添加资源文件编译

最近自己做Multi_window项目,需要添加一些图片和布局文件,上网搜了一通,但是貌似没有合适KitKat的,于是总结分享下:

1. Depending on what version of JB you are using you should either use the public.xml or symbols.xml to add your new id's.

Adding new id's to public.xml was abandoned in this commit:
http://git.omapzoom.org/?p=platform/frameworks/base.git;a=commitdiff;h=9d9ece3c1e16001b63244459cdf4b428f4272d2e

An easy way to find the symbols is:

1) add the new id to your xml
2) run "make -j4 2>&1 | sed -n -f frameworks/base/core/res/ MakeJavaSymbols.sed | sort -u"
will generate a output like this:

 
 

3) add the above to either:
frameworks/base/core/res/res/values/symbols.xml
or 
frameworks/base/core/res/res/values/public.xml

2.

make framework

make update-api

make


3. From here

(1)
frameworks\base\core\res\res\values\string.xml下添加

同时注意  frameworks\base\core\res\res\values\symbols.xml(android4.2)或者public.xml(android4.2以下)下也需要相应的添加

(2)调用的地方 com.android.internal.R.string.xxx

编译 步骤
步骤1.编译frameworks/base/res,在out/target/product/X设备名X/system/framework/目录下生成framework-res.apk 
步骤2.编译frameworks/base/,在out同样目录下生成framework.jar包(不能忽略,不然步骤3编译报错) 
步骤3.编译frameworks/base/policy,在同样目录下生成policy.jar包


亲测方案3在KitKat上成功。

在4.4上,添加layout文件后,也是在
frameworks/base/core/res/res/values/symbols.xml
最后照着样子添加即可,包括layout文件中的id,如果要使用,也需要在 symbols.xml中列出。

最后,当frameworks/base/core/res和frameworks/base/ 都mmm编译过后,刷新eclispe中的project, 就没有出错信息了。



你可能感兴趣的:(android)