from:http://www.cppblog.com/wythern/archive/2012/12/21/191394.html


想给Androird JellyBean 4.1.0的framework里面添加一个res,把xml写好以后编译时候报错

int ticker = com.android.internal.R.string.xxxxxxxxxx;
^
frameworks/base/services/java/com/android/server/StatusBarManagerService.java:143: cannot find symbol
symbol : variable xxxxxxxxxx
location: class com.android.internal.R.drawable

解决办法很简单,在MakeJavaSymbols.sed里面有:
# Run this on the errors output by javac of missing resource symbols,
# to generate the set of <java-symbol> commands to have aapt generate
# the symbol for them.
#
# For example: make framework 2>&1 | sed -n -f MakeJavaSymbols.sed | sort -u

重新编译会产生
<java-symbol type="string" name="xxxxxxxxxx" />
把这个copy到publlic.xml。再重新编译一次就搞定了。

public.xml也提到
<!-- Private symbols that we need to reference from framework code. See
frameworks/base/core/res/MakeJavaSymbols.sed for how to easily generate
this.
-->

看起来所有private的internal res都必须在这里声明一下。JellyBean以前貌似没有这么麻烦。好在他提供了一个sed,免得全部手写。

更多相关文章

  1. android基础学习
  2. Android的权限声明
  3. 设置APP运行界面为竖屏,禁止屏幕旋转
  4. 学习笔记-androidmanifest说明
  5. Android使用权限
  6. Android定制权限重名引起的问题
  7. Android中打包含有Activity以及资源文件的jar包在工程中调用
  8. Android声明式UI框架 Litho 初探——基础使用
  9. 薄荷Toolbar(ActionBar)的适配方案

随机推荐

  1. 记一次将kali linux 写入U盘的经历
  2. 使用BERT进行跨领域情感分析
  3. Oracle数据科学:图像识别与视频合成
  4. Centos安装jdk,mysql,spring nacos,redis
  5. PHP:cURL error 60: SSL certificate unab
  6. ***技巧,小总结!
  7. 阿里P8架构师分享私用Java学习资料(含视频
  8. 使用 Oracle Load For Hadoop(OLH)实现数据
  9. Dom元素增加删除,修改,查找
  10. js之ajax与选项卡换肤实战