zoukankan      html  css  js  c++  java
  • Java,Android 项目导入Eclipse常见错误

    一、导入的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开发的工程时,以上问题就出现了。

      解决方法是:

      进入windowpreferencesjavaInstalled JREs 

      按Add --> Browse...--->选择jre安装路劲(我的jre路径是C:Program FilesJavajdk1.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安装路径即可。

     

  • 相关阅读:
    如何在main之后做一些事情
    Flash Component不显示[待解决]
    C++函数后面的throw()
    为甚马脚本中修改Text Sprite的Blend无效?
    sprite(channel).type的意义
    IDXGIDevice接口
    Director中调用AS3.0对象getVariable 附源码 20151228update
    MultiUser 03 – Serverside Script
    MultiUser02 使用Xtra和Server建立连接
    一部职场寓言——读《团队的五种机能障碍》
  • 原文地址:https://www.cnblogs.com/crazyrunning/p/3430022.html
Copyright © 2011-2022 走看看