zoukankan      html  css  js  c++  java
  • win7中eclipse+adt的配置

    换了台64位机子,重装了win7系统,然后在装eclipset和adt的过程中遇到了很多问题,终于都解决了,记录一下:

    1、下载最新jdk(64位)并安装

    官网地址:

    http://www.oracle.com/technetwork/java/javase/downloads/index.html

    2、下载最新eclipse(64位)并安装

    官网地址:http://www.eclipse.org/downloads/

    3、给eclipse装adt插件

    方法一:在线安装

    ①注意adt的安装依赖于eclipse的一个插件叫做WST Server Adapters,最新的eclipse是不包含这个插件的,在装adt前首先要更新这个插件,否则会提示下面的错误:

    Cannot complete the install because one or more required items could not be found.
    Software being installed: Android Development Tools 10.0.0.v201102162101-104271
    (com.android.ide.eclipse.adt.feature.group 10.0.0.v201102162101-104271)
    Missing requirement: Android Development Tools 10.0.0.v201102162101-104271
    (com.android.ide.eclipse.adt.feature.group 10.0.0.v201102162101-104271) requires 'org.eclipse.wst.sse.ui 0.0.0' but it could not be found

    so,Help->install new software,输入地址http://download.eclipse.org/releases/helios,选中Web,XML,and Java EE Development下的WST Server Adapters安装

    ②上面的插件安装完毕以后,就可以按照正常的步骤更新adt了

    Help->install new software,输入地址https://dl-ssl.google.com/android/eclipse/,全选安装

    注,有些人可能网络状况不大好,这个时候可以选择离线安装,上网搜个最新的adt包下载下来。安装步骤:Help->install new sotware->add,在archive里输入本地的adt包地址,和上面的安装步骤一样,但注意不要勾选最下面的contact all updatesXXX,就是纯离线安装。

    如图:

    注:实际上,在我已经安装了wst插件以后,再离线安装adt,依旧会报上面提示的缺少android develop tools的错误,后来网络恢复了,也就未再深入研究解决办法

    4、导入sdk

    由于我之前就已经下载过sdk,已经有目录了,直接重新指向原来的旧目录即可。window->preference->Android,设定目录

    5、最后,eclipse自身的配置

    android工程导入正常,但一编译就崩,报错:

    java was started but returned exit code = -805306369

    第一次报错截图:

    其实截图里已经给出原因了,在没有指名java路径的情况下,eclipse会默认到system32里面去寻找。此时,需要进入eclipse的根目录,修改其配置文件eclipse.ini,在-vmargs 之前,加上2句,指名vm地址:

    -vm
    C:/Program Files/Java/jdk1.6.0_43/bin/javaw.exe

    注意,这2句必须加在--vmargs之前。 

    但是,光增加了这个参数还不行,eclipse依旧会崩溃,报错如下:

    大家可以看到,我这里的vm地址写的是斜杠/而不是反斜杠\,因为在指定vm后eclipse还是报错,我上网搜到一位仁兄说这样可以解决,病急乱投医,于是就改成了这样。(事后我验证过,用斜杠/和反斜杠\居然都可以,不影响。不过windows的路径一直都是\,不建议修改,感觉有点莫名其妙)

    此时我已改过vm地址了,而且此时我也已修改过eclipse的内存配置,改成了网上通用的防止eclipseOOM的配置,但依旧还是报这个错。

    我找了很久的原因,没有想到原因居然还是eclipse内存过小!

    eclipse的默认配置:

    -vmargs
    -Xms40m
    -Xmx512m

    用这个默认配置跑大工程的话,eclipse会直接报heap错误的。我一早就已改成了下面的:

    -vmargs
    -Xms128M
    -Xmx512M
    -XX:PermSize=128M
    -XX:MaxPermSize=256M

    由于已经改过一次配置(自认已经排除了内存过小的原因),但是-805306369的错误依旧存在(关键此时,eclipse也不会给你提示oom或者heap错误了,坑爹),我一直以为是其他配置不正确引起的,整了半天也没解决,最后参见http://www.i5a6.com/930.html的解决办法,又改大了内存,问题解决,编译正常。

    再次改后的配置如下:

    -vm 
    C:/Program Files/Java/jdk1.6.0_43/bin/javaw.exe

    -vmargs
    -Xms128M
    -Xmx1024M
    -XX:PermSize=128M
    -XX:MaxPermSize=256M

    now,再编译运行,ok了。

    可见-vm参数和-vmargs参数缺一不可,一个都不能错。

    PS:eclipse.ini的各项参数介绍:

    -vmargs:       说明后面是VM的参数
    -Xms40m:     虚拟机占用系统的最小内存,初始化内存大小
    -Xmx256m:   虚拟机占用系统的最大内存,Xmx是最大可使用内存大小
    -XX:PermSize:最小堆大小。(一般报内存不足时,都是说这个太小,堆空间剩余小于5%就会警告,建议把这个稍微设大一点,不过要视自己机器内存大小来设置)
    -XX:MaxPermSize:最大堆大小。这个也适当大些。

    eclipse.ini文件用来配置eclipse启动时候的内存分配方案,XMX这个参数配置的大小很关键,太小,eclipse垃圾回收会过于频繁导致很慢,或者内存堆栈溢出而崩溃。太大,eclipse会吃掉大量内存,垃圾回收周期变长,但每次回收会很慢,影响使用。

    PermSize大一点肯定更好,而且最好是设置PermSize和MaxPermSize一样大。理由如下:

    PermSize 和MaxPermSize如果设置为相同还可以在一定程度上提高性能,因为,PermSize在不断的变化中会需要转移其中的数据。如果固定了以后,则可以减少每次扩大PermSize带来的性能损失。

    再次修改后的配置如下:

    -vm
    C:\Program Files\Java\jdk1.6.0_43\bin\javaw.exe
    -vmargs
    -Xms512M
    -Xmx2048M
    -XX:PermSize=1024M
    -XX:MaxPermSize=1024M
    -XX:+UseParallelGC

    经对比,编译和运行比上面的配置速度提高了30s.

    PS:堆内存和非堆内存:

    java虚拟机有一个堆

    堆:堆就是运行时数据区域,类实例以及数组的内存都从这里分配(new一个class,消耗的就是堆内存)。java程序运行时,JVM就会从系统获取一些内存创建堆

    非堆:除了堆之外的,剩余的就是非堆内存。

    非堆内存=code cache+permanet Generation

    codeCache:代码缓存,编译和保存本地代码

    permanet Generation:JVM的静态数据,如class和method对象(heap只保存class的实例)

    GC:garbage collection

    堆内存简介:

    垃圾回收机制参考链接http://www.365doit.com/all/news/javaheap.html

  • 相关阅读:
    密码 (pasuwado)
    bzoj 4131: 并行博弈 (parallel)
    Beads
    bzoj2338数矩形(rectangle)
    数树数
    最近公共祖先(lca)
    在python中遍历字典元素
    加载本地json文件,并利用批处理调用Chrome显示html
    numpy保存数据
    Echarts 地理信息可视化:基于地图显示坐标点信息
  • 原文地址:https://www.cnblogs.com/arthur3/p/3026385.html
Copyright © 2011-2022 走看看