深入探讨Android R.java

来源:互联网 发布:贵美商城js源代码 编辑:程序博客网 时间:2024/06/05 12:03
怎么说呢,有些问题是可遇不可求的,R.java问题也是我们在Android开发中经常遇到的,到目前为止,我总结了几处(以后可能还会遇到其他的问题) 1、首先要知道R.java文件是干什么的,R.java文件程序在编译过程由aapt(android aaset packaging tool)自动生成,不要修改,就是程序提示出错了,也不要手动修改R.java文件
2、为何不能引用res/下已存在的图片或其他类似文件?
比如说res/资源文件下有图片,这个时候去查看R.java文件,发现并没有生成这个图片的资源ID,这是因为图片是有,但是我们还没有在.xml或是程序中引用,程序编译时没有引用它们又怎能生成相应的资源ID;第二种情况可能是我们的包导错了,android有默认的系统R.java 即import android.R 这时我们应该导入我们自己写好的比如import android.com.R;
3、为何不能生成R.java文件或是clean项目时R.java文件不见了?
不能生成R.java文件,说明工程中有错误,这时我们可以先把错的注释掉,按Ctrl+S保存重新编译下即可;
clean工程时不见了R.java文件最常见,我们首先应该考虑是不是xml写错了,如果项目比较多,我们也不能把错的地方一一注释掉,太麻烦而且浪费时间,这个时候,千万不要着急,重新clean项目,看console下的“报红”,找到错误的xml文件一一解决即可.
4、android项目前无故多了个大大的红色叹号?
这个情况一般是刚启动eclipse后出现,这个我认为是eclipse做得比较好的地方(起码用着比vs2010爽,而且做得更专业),这个问题也好办,右键我们的项目找到bulidPath-->Configure Build Path,重新建立我们的项目,找到libraries--看下面的包有没有重复的或是有明显标记的比如说叉叉等,然后选中"Remove“掉即可
5、电脑太卡强行关闭正在运行的elipse(我关闭时elipse正在编译,我直接结束了进程),再次启动eclipse,你傻眼了?
如果你eclipse中项目较多,现在的情况应该是项目无一例外全是红叉叉,令人胆寒,随便打开一项目,里面全报错,这错误就明显了,有可能少包什么的,因为程序正在编译,突然强行关闭,少包是很有可能的,这个将鼠标放在有报红的程序代码中,会弹出系统提示,下面有个Fix Project setup....什么的提示,我们点击,错误消失(这种情况是不太严重的);还有一种情况,clean项目不成功,下面报红,编译报错,甚至不能导包,具体信息我忘了,网上说换一个wokspace,我试了下,行不通,clean,编译,导包还是会报错,这时我们可以通过import-->先择General-->Existing....导入我们的项目,然后再一一排错即可解决(昨天我就差点就重装eclipse),这也是我觉得eclipse比vs做得好的又一原因
6、刚遇到的,错误还真是可遇不可求,电脑突然蓝屏,后自动重启,而我当时正在编辑AndroidManifest.xml文件,重启后你会发现项目崩溃了?
我的是一个测试小项目,这时会报 Contentis not allowed in prolog,你双击配置文件还会弹出alert,说是配置文件找不到(也可以理解,电脑突然蓝屏,配置文件根本就没保存),java:Nullpointer空指针异常,我clean不行,refresh不行,也上网查了下,先给个链接http://www.crifan.com/adt_while_editing_xml_file_error_content_is_not_allowed_in_prolog/,虽然我不是那样解决的,也许对大家有帮助,我后来是直接把配置文件删了,然后复制过来一个,改包名重新编译,我的项目比较小所以才这样做的,大家可以多上网看看,应该会有人解决的!
7、刚才程序还好好的,再次运行却出现“refuse to connect 模拟器5(终端的名字),java.net.refuse---timeout,运行其他项目,则出现同样的问题,有一种可能是期间司断网,模拟器与eclipse失去连接,因此即使公司已连上网,运行项目还是会出现上述情况,此时关闭这个已经失去连接的终端,重新运行一个模拟器即可
8、在公司使用的版本管理工具为SVN1.75,正在写代码,电脑突然蓝屏(我的电脑经常是这样),然后再次打开eclipse后发现项目前的黑*不见了,版本SVN崩溃了?
我重启了eclipse发现不管用,还是没有黑*,此时我右键项目选择Team-->有两项目选择,上面的叫Appath... 我选择了下面,然后弹出一个窗口,点击finish即可出现SVN管理工具的标志!
9、公司电脑再次蓝屏,蓝屏时eclipse正在导入外部项目,这次打开eclipse后DDMS不干了,不能Buliding workspace了,"DDMS can't load class",上网搜了很多,说是eclipse-install new software再次选择adt,ddms等的安装,更新,试了下,貌似不行,我气急败坏,将eclipse强制关闭,再次重启,结果发现可以了,看来有许多问题,eclipse的自动修补功能还是很可以的.
10、电脑重装系统后,用SVN检出以前的项目,运行--报错---空指针An internal error occurred during: "Launching New_configuration".Path for project must have only one segment.
,项目运行不起来,项目中也并没有出现红叉叉或者感叹号或者项目凭空出现"空指针异常",这时打开Project -> Properties -> Run/Debug Settings:-->select "Launching New_configuration"--->Delete-->点击OK,不放心的再clean一下项目即可重新运行!
11、将项目上传到SVN上---Clean项目没有报错,运行android项目,发现报这个错,有人说是svn版本的问题,要重装svn,这个没试,查看上面的报错信息,发现项目中dexedLibs文件夹下的jar包都没有提交,而且它又说android-support-v4.jar包“Could not remove"(提示可能这个jar包没有同步到服务器上,运行时,项目也没有将这些jar包包含进来,因此,将这个dexedLibs文件夹提交到SVN上,重新Clean项目,运行即可!
12、源码导入到项目中,有报错,先进入到src里看是否有乱码,如果有,直接改工程为UTF-8,按CTRL+S保存编译即可;如果还报错,则改为你开发较常用的sdk版本,比如2.2(在工程属性里改即可)
13、eclipse启动后console里出现 ADB Sever didn't ACK,* failed to start daemon * ,启动windows任务管理器,查找到Tadb.exe 结束掉该进程,重新执行命令adb start-server即可!
14、Unable to execute dex: Multiple dex files define Lcom/kenai/jbosh/AbstractAt,启动项目出现这个错,一般是jar包重复,右键项目选择--将android private prefrences整个删除,选择project--clean,去掉自动编译clean下项目运行即可!(PS:每次重启eclipse还会生成android private prefrences,这是ADT版本高的缘故,重复以上操作即可!)
15、运行程序出现Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. 苦逼,网上说是包重复了,将右键项目将android dependencies去掉即可(由于错误的添加了不必要的core library或重复添加了同一个library jar包产生冲突造成的)
0 0
原创粉丝点击