原文链接: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. TZOJ 删除前导多余的*号

    描述 规定输入的字符串中只包含字母和*号,编写程序使字符串中前导的*号不得多于n个:若多于n个,则删除多余的*号:若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除. 输入 输入数据包括一串 ...

  2. iOS开源项目阅读整理

    精读过的开源项目,随时整理,随时更新,本文只记录项目地址,名称和内容,不发表心得. 1.AFNetWorking iOS人都知道,不细诉. 2.iCarousel 旋转木马,选项卡很不错的UI解决方案 ...

  3. angualrjs2教程

    1.一本本开源的Angular2书籍:https://zhangchen915.gitbooks.io/angular2-training/ 2.好的博客教程,讲的通俗易懂:http://codin. ...

  4. golang技巧-接口型函数

    接口型函数:指的是用函数实现接口,这样在调用的时候就会非常简便,这种函数为接口型函数,这种方式适用于只有一个函数的接口. 定义一个类型,这个类型只定义了函数的参数列表,函数参数列表与接口定义的方法一致 ...

  5. Http报头Accept与Content-Type的区别(转)

    1.Accept属于请求头, Content-Type属于实体头. Http报头分为通用报头,请求报头,响应报头和实体报头. 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报 ...

  6. [Javascript]js判断是否为undefined类型

    概述 在项目获取某个元素的值会出现undefined,所以对这种情况要有特殊处理. 可通过下面的代码判断是否为undefined类型. if (typeof(reValue) == "und ...

  7. Asp.Net Core 缓存的使用(译)

    原文:http://www.binaryintellect.net/articles/a7d9edfd-1f86-45f8-a668-64cc86d8e248.aspx环境:Visual Studio ...

  8. Malware

    电脑病毒的一种, 中文名为“马威尔”, 有多种病毒变种. 1概述 Malware这个单词来自于Malicious和Software两个单词的合成,是恶意软件的专业术语,专指那些泛滥于网络中的恶意代码. ...

  9. (转)MFC的GUI窗口使用Console输出函数printf

    原文链接 在GUI程序中使用printf函数: #include <io.h> #include <fcntl.h> void InitConsole() { ; FILE* ...

  10. [GraphQL] Filter Data Based on Query Arguments with GraphQL

    With GraphQL, every field and nested object can have a set of arguments which can be used to request ...