昨天在拷一个工程给同学的时候,他的eclipse不知何故无法导入,没法子只能复制粘贴代码。复制粘贴好后,发现R类引用发生错误,导致src主体程序中多处报错,尝试重新建各种res下的xml文件都无果。最后没办法,大胆尝试去修改R文件,将原工程工程中的R文件的内容也复制粘贴到新工程中。
其实原本我也非常犹豫,还感觉这样做会不成功,因为我和他的开发环境、版本都不同,R文件又是工程文件自己产生的,官方建议都是不要修改,只是走投无路下的尝试,没想到就成功了,那些error全都消失。修改成功后然后去思考why
进一步在网上搜索R类的资料,发现在复制代码的时候后,R类引用出错的一个处理方法,是删除这个类,并等待系统重新生成。显然这个方法应用范围更广泛,应该是更好的解决方案。
在查的时候,我发现原来系统也自带R类。在android.jar包下可以看到R类的结构,系统R类封装和提供了比较完善和常用的资源可以供程序直接使用,如系统图标、字符串、布局、样式等等。一个例子,如引用Android系统的help图标,若在资源文件中引用,则代码如下:
@android:drawable/ic_menu_help
若在程序里,同样的资源可以这样表示:
android.R.drawable.ic_menu_help
Fin, se coucher et bonne nuit~