原文链接: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. 一个强大的UI node 抽象

    基于cocos2d -x的一个强大的 界面对象的基类 ---@type uinode ui 对象的抽象 --@usage -- 界面打开的执行流程 -- 带*的是可选重写的函数,不带*的为必须实现的 ...

  2. TCP长连接与短连接的区别(转)

    1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...

  3. 安装scrapy报错问题解决

    今天在安装scrapy时候,最后一步出现下面报错(操作系统为centerOS 6.4) error: Setup script exited with error: command 'gcc' fai ...

  4. Saga alternatives – routing slips

    In the last few posts on sagas, we looked at a variety of patterns of modeling long-running business ...

  5. MathType插入带序号公式的两种方法

    方法一: 由于我之前使用表格15% 70% 15%来布局的,所以最开始相的就是如何录入公示后插入公式序号,如下图所示 先设置序号格式 录好公式后点“Insert Number”就好了,这样的话需要紧挨 ...

  6. Swift,字典

    1.创建(Dictionary)字典(无序的可重复) (1)指定类型 var a:Dictionary<String,String>=["a":"b" ...

  7. iOS :学习新技术途径和sizeClasses屏幕适配

    1.了解有什么新技术 1> 苹果API文档 - General - Guides - iOSx API Diffs 2> 观看WWDC会议视频 2.如何使用新技术 1> 自己根据AP ...

  8. 【转载】游戏并发编程的讨论 & Nodejs并发性讨论 & 语法糖术语

    知乎上这篇文章对于游戏后端.性能并发.nodejs及scala等语言的讨论,很好,值得好好看. https://www.zhihu.com/question/21971645 经常了解一些牛逼技术人员 ...

  9. asp.net购物车,订单以及模拟支付宝支付(一)---购物车表及添加购物车流程

    在开发一个Web程序的时候用到了网购这个功能,上来分享并记录一下,以便以后忘记了可以自己看看(电脑东西太多,笔记都不知道放哪里去了啊啊啊啊啊!!!) 没有什么高并发量,什么什么技术理论,只是一个最最基 ...

  10. [Javascript] Conditionally spread entries to a JavaScript object

    In JavaScript, we often end up composing one object out of several other objects. Luckily there's a ...