原文链接:http://www.jianshu.com/p/d8d1d72d0248#

最近项目从Eclipse+Ant构建模式转移到了Android Studio+Gradle构建模式,自然的JDK版本号也从JDK6升级到了JDK7,但后来发现,由于我们是一个SDK项目,最终会以JAR包形式提供给第三方使用,这样就会遇到一个问题,如果我们使用JDK7编译JAR包,而第三方编译环境使用的还是旧的JDK6,那么编译工程的时候就会出现:

Unsupported major.minor version 51.0

因此需要把我们的Android Studio工程编译环境从JDK7降为JDK6,下面就是修改记录。

Mac系统JDK不同版本的路径

默认情况下,Mac系统JDK不同版本的默认安装目录有点差别,JDK6,JDK7和JDK8的 安装目录分别如下所示:

/System/Library/Java/JavaVirtualMachines/1.6..jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.7.0.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home

Android Studio的修改

点击Android Studio的File-Other Settings-Default Project Structure:

打开Project Structure对话框,在这个对话框中可以修改Android SDK和JDK的路径:

环境变量的修改

经过上面的修改,我们在Android Studio UI界面上编译时,将使用我们修改后的JDK6版本,但是当我们在Terminal中输入java -version查看当前JDK版本信息时,会发现还是之前的JDK7版本,可能的原因是之前系统中设置了JAVA_HOME环境变量,因此这里也要修改一下。

打开Terminal,输入vim ~/.bash_profile,打开这个文件,内容如下:

可以看到,环境变量里面确实还是之前的JDK7版本,将其指向JDK6的安装路径就可以了。然后重新加载profile使其生效:

source ~/.bash_profile

Jenkins的修改

自动化编译使用的是Tomcat+Jenkins,Jenkins的修改比较简单,在Jenkins首页点击[系统管理]-[系统设置],找到如下JDK设置选项进行修改即可:

修改完成之后,重启Tomcat,会发现Jenkins页面访问失败,原因在于我们使用的Jenkins版本最低只支持JRE7,官网截图如下:

而在环境变量那一步我们已经将JDK版本从JDK7降为JDK6了,这时可以通过修改Tomcat的JRE_HOME参数来解决,打开Tomcat安装目录下bin/catalina.sh(因为我使用的是Mac系统,Windows系统请切换到catalina.bat),搜索JRE_HOME参数,如果不存在就新建之,并赋值为电脑上JDK7目录:

JRE_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home

Android Studio 使用笔记:[转] Mac下修改Android Studio 所用的JDK版本的更多相关文章

  1. [Android Studio 权威教程]Windows下安装Android Studio

    从AS 0.5版本号開始使用.也是AS的推行者,在ApkBus公布的第一篇Android Studio Perview 2 获得了50K的浏览,1800多条回复下载. 在我的[Android Stud ...

  2. 【Android学习笔记】Mac下Android Studio开发环境搭建

    本文由@ray 出品,转载请注明出处.  文章链接:http://www.cnblogs.com/wolfray/p/7829069.html 对于移动端这块,笔者之前一直都是进行iOS开发的,也从来 ...

  3. Mac下改动Android Studio 所用的JDK版本号

    Mac下改动Android Studio 所用的JDK版本号 @author ASCE1885 近期项目从Eclipse+Ant构建模式转移到了Android Studio+Gradle构建模式.自然 ...

  4. Android开发学习之路--MAC下Android Studio开发环境搭建

    自从毕业开始到现在还没有系统地学习android应用的开发,之前一直都是做些底层的驱动,以及linux上的c开发.虽然写过几个简单的app,也对android4.0.3的源代码做过部分的分析,也算入门 ...

  5. (转载)Mac下使用Android Studio 获取 SHA1和MD5

    Mac下使用Android Studio 获取 SHA1和MD5 2015-08-10 15:38 1776人阅读 评论(1) 收藏 举报  分类: Android(14)  版权声明:本文为博主原创 ...

  6. Mac下设置Android源代码编译环境

    在Mac下编译Android最麻烦的就是设置Android的编译环境了,做完这一步基本上剩下的就是近乎傻瓜式的操作了.说起来也简单就三步,设置大小写敏感的文件系统.安装编译工具.设置文件系统同时能打开 ...

  7. Windows下修改Android手机的hosts

    Windows下修改Android手机的hosts 1.首先,手机是Root过的. 2.连接手机和电脑, adb shell 进入命令行. 3.获取root用户权限: su -root 4.不知道为何 ...

  8. Mac下修改环境变量

    Mac下修改环境变量 如果使用默认Bash, 首先修改 ~/.bash_profile 文件,添加文件路径,比如: export PATH=~/bin:/usr/local/bin/node:~/Do ...

  9. mac 下搭建 Android 开发环境

    因工作需要,要在mac 下搭建 Android 开发环境.谷歌.度娘了好久,没有找个一个完整又系统的方法,很是苦恼.最终,皇天不负有心人,找到了下面这篇文档,结合亲身体验,特此记录.也为有这方面需求的 ...

随机推荐

  1. Problem B: 零起点学算法17——2个数比较大小

    #include<stdio.h> int main() { int n,m; while(scanf("%d %d",&n,&m)!=EOF) if( ...

  2. 数据挖掘经典算法——K-means算法

    算法描述 K-means算法是一种被广泛使用的基于划分的聚类算法,目的是将n个对象会分成k个簇.算法的具体描述如下: 随机选取k个对象作为簇中心: Do 计算所有对象到这k个簇中心的距离,将距离最近的 ...

  3. Linux下CURL设置请求超时时间

    使用CURL时,有两个超时时间:一个是连接超时时间,另一个是数据传输的最大允许时间. 连接超时时间用--connect-timeout参数来指定,数据传输的最大允许时间用-m参数来指定. 例如: cu ...

  4. gzip压缩目录

    很遗憾,gzip不能针对整个目录进行压缩,只能递归压缩目录下的每一个文件. 当然,替代方案是只用tar进行打包,比如 tar cfz dir.tar.gz dirname

  5. Swift,字符串

    1.字符串只能使用双引号 var a="你好" 2.单字与多字 var a:Character="1" var b:String="12" ...

  6. 大数据的开始:安装hadoop

    为实现全栈,从今天开始研究Hadoop,个人体会是成为某方面的专家需要从三个方面着手 系统化的知识(需要看书或者比较系统的培训) 碎片化的知识(需要根据关注点具体的深入的了解) 经验的积累(需要遇到问 ...

  7. python获取系统信息,

    1 操作系统系统综合信息cur_sysinfo=platform.uname()浏览器信息cur_browserinfo=self.driver.capabilities['version']浏览器新 ...

  8. Netty4 initAndRegister 解析

    我们从框架的应用层面来分析,NioEventLoopGroup在netty中的使用. 这是我们需要配置的地方. 紧接着我们进入netty的运行中.ServerBootstrap.bind(PORT); ...

  9. Android EditText输入字数限制总结(包含中文输入内存溢出的解决方法)

    转载请注明,大飞:http://blog.csdn.net/rflyee/article/details/38856539 限定EditText输入个数的解决方式非常多,可是一般主要考虑两点.也就是处 ...

  10. [TypeScript] Deeply mark all the properties of a type as read-only in TypeScript

    We will look at how we can use mapped types, conditional types, self-referencing types and the “infe ...