一、导入的jar包不存在:
右键工程属性查看:
导入的第三方jar包不存在;
解决方法:
删除该jar包,得到该jar包并存至本地,再导入该jar包
二、中文字符乱码:
解决方法:
右键项目属性:
修改字符编码方式即可
三、编译器版本不同:
解决方法:
右键项目属性:
修改成相应版本即可
四、R.java丢失:
R,java出现错误后,先clean一下project,这样R.java就丢失了,但是别担心,刷新项目,R文件会自动更新出来,如果不更新的话一定是程序中有错误,一般情况下是命名问题。
我遇到的情况是:
(1)不同的layout.xml文件中控件命名冲突(我当时就是直接复制的)。只要把相关的控件命名区别开来,刷新项目,R文件就会自动生成。
(2)而且相关的目录文件不能删除,res文件夹中只能包含文件夹,不能有文件或图片存在。
不管怎么样,只要res文件没有错误,R文件会自动生成。
以下内容属【转载】
(源:http://blog.sina.com.cn/s/blog_81547cad01014xh1.html)
Android 在开发中会自动生成一个 R.java文件,这个文件是自动生成的,最好不要去改。不过有时候这个 java 文件会跟我们捉迷藏,在程序中 R.xx.xxx会出现经常报错现象。其实只要对着工程点击鼠标右 键 选择Build Project,R.java 文件又回来。这样R.xx.xxx 就能 X的出来了。
导入其他Android时出错分析
最近几天学习android,学习时候难免要导入一些示例,目的为了更加了解android各种API用法,顺便也可以学习下别人代码的写法。可是导入android源码后,基本都有错误,R.java也不会自动生成,因为是第 一次导入工程,工程有错R.java就不会自动生成了,工程有错误,当然模拟器就不能启动,也就看不到效果。随后网上找各种解决方法,网上解决方法主要有这几种
1、选择菜单 Project Clean ,前提是勾选上 Bulid Automatically(自动构建部署),点Clean后会重新构建项目,因为一般情况下,R.java文件在这个时候会重新更新生成一边,如果工程有错,就不会自动生 成。
Bulid Automatically设置:window preferences workspace下
2、选择工程,右键 Android Tools Fix Project Properties 这个操作有时候可以修正一些错误,但我的不行。
3、还有的说法是重新建一个空的工程,然后把这里面的代码,资源文件按照对应的包路径什么的拷进去,然后重新生成一边,这种方法,也想当于是第一种方法,都是重新构建部暑,性质一样的。
以上几种方法都试了,R.java依旧没出现,整个工程还是一大堆错误。随便点了一个有错误的布局XML文件,看到这样一个错误代码android:layout_height= quot;match_parent" 之前我都用1.5/1.6/2.1 版本 的SDK layout_height里面没有看到match_parent这个属性,然后问群一个兄弟说这个属性是2.X版本的,想了下,是不是因为工程的SDK版本和eclipse默认的SDK版本问题呢,于是选择工程,右键 Properties >> Android 然后看到右边的一块Target Name, 我的是选中 Android 1.5,然后换了一个 2.1 的 ,点击Appply,工程自动构建,看到错误少了一些,换到2.2,重新构建,错误没了,久未解决的问题 解决了,R.java也出来了,一个字高兴啊,启动模拟器一切正常。
总结下当导入其它源码时候,首先要保证源码的SDK版本和你eclipse默认版本是否一致。
查看源码版本办法:打开default.properties 文件,看target=android-7 这后面这个数是多少。
版本对应关系:target=android-3 <---> android1.5 ,target=android-4<---> android 1.6 ,
target=android-7 <---> android2.1 ,target=android-8<---> android 2.2其它的自己测试下。
一张图片的名字中有一个空格,原来在android资源文件中规定图片文件的名字中不能有大写字母、第一个符号不能是数字。
今天在使用Eclipse是还遇到了一个问题:本来用的好好的开发环境,突然就出错啦!
提示信息大体意思是在tools目录下找不到adb.exe,我进了tools目录下一看的确不见了adb.exe,但是然后却发现了这么一个人文件 adb_has_moved.txt
打开一看:The adb tool has moved to platform-tools/
If you don't see this directory in your SDK,
launch the SDK and AVD Manager (execute the android tool)
and install "Android SDK Platform-tools"
Please also update your PATH environment variable to
include the platform-tools/ directory, so you can
execute adb from any location.
额,原来adb.exe被移动到 Platform-tools目录下了,于是我想把文件再拷贝回来不就行了嘛。。。
可是事与愿违,就算考回来啦,还是不行ing!!
还是百度吧,试了一下网上写的方法:
在Eclipse中选择菜单“help->Check for update”,选择更新ADT即可。按上面操作完成后,重启Eclipse,问题解决!
但是还是不行 。哎纠结啊
还有就是改一下环境变量,貌似我改完还是没有啥变化。
一生气差点把eclipse给重装了。后来终于找到了解决方法。吧ADT给卸载了,重装!好啦。。
看来貌似是ADT升级产生的问题。
五、The type **** cannot be resolved
这类问题有两种可能的情况,
第一种情况是相关类没有导入,ctrl + shift + o 整理import,快捷导入未导入的包了清除未使用的包。
第二种情况是也是跟没有导入相关类的原理一样,拿个java se的例子来说,某日写了个简单的hello world:
public class Hello {
public static void main(String[] args) {
String greeting = "Hello Java";
System.out.println(greeting);
}
}
结果在编译时报错:
The type java.lang.String cannot be resolved. It is indirectly referenced from required
总所周知java会默认导入java.lang包,出现这个问题一般就是jdk导入的问题了。当在Eclipse引用不同版本JDK工程时会发生该问题。由于开发环境中应用了多个版本的JDK 或JRE导致的。Eclipse会按照最初的开 发环境默认选择对应的Jre。如Eclipse上有jdk1.4开发的环境工程,当你在引入高版本jdk1.6开发的工程时,以上问题就出现了。
解决方法是:
进入window\preferences\java\Installed JREs
按Add --> Browse...--->选择jre安装路劲(我的jre路径是C:\Program Files\Java\jdk1.7.0_25)--->OK
找到你的工程右键点击Properties选项 出现对话框后 选择右边的Libraries选项卡 ---> 单击Add 了Library...--->
选择Jre System Library... ---> Next--->选择Alternate Jre 下的对应版本jre --> Finish ---> Ok
在写android程序,java servlet时也会因android sdk或者servlet出现类似的问题,如:
The type javax.servlet.ServletContext cannot be resolved. It is indirectly referenced from required
The import android.app cannot be resolved.It is indirectly referenced from required
对于android:可以在相应的project上右键属性到android选项,更改到需要的android sdk,如当前勾选的就是需要的sdk而出错了,随便勾选到另一个sdk再应用,然后再换回到所需的sdk:
对于java web servlet:可以在相应project上右键属性或者build path到如下选项界面,
选择add variable... ——> servlet runtime选择相应版本的tomcat服务器,如果在servlet runtime中没有看到有相应的服务器选择,应该是服务器未创建,可以参照如下方法创建:
Windows—>Preferences—>Server—>Runtime Environment:
然后再Add:
Next:
起个名字,填好tomcat安装路径即可。