写在前面
android studio的更新是在是频繁,一不小心已经更新到3.0了。
android studio的官网:https://developer.android.com/studio/index.html
关键是更新太过频繁,我前几天刚下了android studio 3.0 preview
然后发现更新的时候弹出如下的对话框
我从beta7是无法直接用自带的更新机制更新到稳定的3.0版本的。所以第二个按钮显示为Download,如果可以顺利更新的话应该显示“Update and Restart”,就可以十分快速顺利地更新了。
如果显示error可能是网络问题,注意科学上网。
如果嫌麻烦可以直接点击download按钮去官网把整个andorid studio重新下载重新安装。但是这样不是长久之计,也没必要每次都下几百兆的完整的android studio。
android stdio的更新版本分为4个更新渠道
在如下的选项里可以自行更改
这4个渠道可能是相互独立的 所以导致相互之间可能无法直接用android stuido的更新机制直接更新。
4个更新频道分别是
1.Canary Channel:金丝雀版本,开放新功能,同时 BUG 也很多。 目前已经更新到了3.1了。
2.Dev Channel:开发者版本;
3.Beta Channel:测试版,BUG 出现概率相对较小;
4.Stable Channel:稳定版,官方发布的正式版,发布日期较晚。大家开发还是用稳定版比较妥当。
其实就是开发过程中的不同测试程度的版本。
我想我试着维持两个版本一个测试一个稳定版就够了,早期的版本没什么尝鲜的价值。
后来我想之前不是有下载过稳定版本的1.5嘛 于是就想应该可以想办法把之前的1.5版本更新到最新的3.0稳定版。
准备
由于开发者网站在大陆访问困难 科学上网工具是必备的。
具体就不说了。
本人用的是mac,所以以下的环境都是基于mac,win下应该也是大同小异没有什么大的区别。
然后网上找了一下资料,得出的增量步骤是
1.检查android studio当前的版本号
2.下载更新包
3.使用命令升级版本
4.检查是否已经更新成功
1.检查自己当前的版本号
启动界面或者点击Android Studio ==> About Android Studio
如上图所示,目前的版本是1.5.1 编号AI-141.2456560
2.下载更新包
然后到google的patch网站上看最新的patch情况,点击如下网址
https://dl.google.com/android/studio/patches/updates.xml
可以看到最新的patch情况
截取其中一段:
<build apiVersion="AI-171.4249.39" number="AI-171.4408382" version="3.0">
<message>
<![CDATA[
<html>A new Android Studio 3.0 is available in the beta channel.<p/> 3.0 includes new functionality, bug fixes, and performance improvements.<br/><br/> </p> Native debugging with Android Studio 3.0 no longer works on 32-bit Windows. If you are using 32-bit<br/> Windows and you plan to debug native code, you should keep using Android Studio 2.3. </html>
]]>
</message>
<button download="true" name="Download" url="https://developer.android.com/r/studio-ui/download-beta.html"/>
<button name="Release Notes" url="https://developer.android.com/r/studio-ui/release-updates.html"/>
<patch from="162.4069837" size="462"/>
<!-- 2.3.3.0 -->
<patch exclusions="mac" from="171.4316950" size="213"/>
<!-- 3.0.0.13 -->
<patch exclusions="mac" from="171.4333198" size="213"/>
<!-- 3.0.0.14 -->
<patch exclusions="mac" from="171.4365657" size="190"/>
<!-- 3.0.0.15 -->
<patch exclusions="mac" from="171.4392136" size="52"/>
<!-- 3.0.0.16 -->
<patch from="171.4402976" size="52"/>
<!-- 3.0.0.17 -->
</build>
发现可以更新到最新的3.0版本的最新版本是2.3.3.0,编号ai-162.4069837。
由于google并不支持不同的build下的版本之间的增量更新,所以我们必须想办法把原本的1.5版本通过中间的版本更新到2.3.3.0然后再更新到最新的3.0版本。
由于updates页面只保存了最新的bulid信息,我也一时找不到哪里看历史builds信息,于是就在下面的历史版本下载页面查看不同稳定版本之间的版本差别。
https://developer.android.com/studio/archive.html
补丁包的下载链接格式如下,其中 $FROM 表示当前版本的版本号,$TO 表示要更新版本的版本号:
https://dl.google.com/android/studio/patches/AI-$FROM-$TO-patch-mac.jar
这个链接是我所用的mac格式的,不同平台的后缀是不一样的-mac -windows -windows32 -linux 请选择自己对应的平台。
经过尝试 我从1.5.1版本升级到3.0版本的路径为
https://dl.google.com/android/studio/patches/AI-141.2456560-145.3360264-patch-mac.jar
https://dl.google.com/android/studio/patches/AI-145.3360264-162.3764568-patch-mac.jar
https://dl.google.com/android/studio/patches/AI-162.4069837-171.4408382-patch-mac.jar
把下载下来的jar包存放到不同于android studio安装目录的目录。
3.使用命令升级版本
使用终端切换到android studio的安装目录
我是直接放在在Applications里所以目录为
/Applications/Android Studio.app/
执行命令
java -classpath /Users/[用户名]/Downloads/devtools/android_studio_updatejar/AI-141.2456560-145.3360264-patch-mac.jar com.intellij.updater.Runner install Contents/
注意自行替换jar包所在的位置。
更新中
如果目录输入错误,会报错。
然后依次安装三个jar包
安装第二个jar包的时候发现报错
查询了一番以后发现,就是java的编译环境版本太低,java 8 class file的版本是52,Java 7虚拟机只能支持到51。所以需要升级到java 8 vm才行。
说明android studio2.2.2以后就开始用java8了。
去oracle官网安装idk 8,
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
发现jdk9也已经出了 一并下来安装。
http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
在MAC上查找和设置$JAVA_HOME
可以使用工具命令“/usr/libexec/java_home”来定位JAVA_HOME:
定位JAVA:
Matching Java Virtual Machines (5):
9.0.1, x86_64: "Java SE 9.0.1" /Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
1.8.0_152, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home
1.7.0_71, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
1.7.0_67, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home
1.7.0_51, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-9.0.1.jdk/Contents/Home
通过配置JAVA_HOME来选择java的版本,暂时选择jdk8。
mac 一般使用bash作为默认shell
Mac系统的环境变量,加载顺序为:
/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
当然/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会以此类推读取后面的文件。~/.bashrc没有上述规则,它是bash shell打开的时候载入的。
$ vim ~/.bash_profile
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home
export JAVA_HOME
$ vim ~/.profile
$ echo $JAVA_HOME
$ source ~/.profile
$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_152.jdk/Contents/Home
$ java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
通过echo $JAVA_HOME来验证java_home的定义 然后用java -version来判断是否成功设置
安装好java环境以后继续增量更新android studio
2.2.2->2.3.3
结果升级到2.3.3以后还是无法直接通过内置的update工具直接升级到3.0,还是需要敲命令。
不知道是具体如何判断的。
4.检查是否已经更新成功
打开android studio 查看about.
如此更新成功。
android studio的更新还是有很大的风险,不管是下载jar包更新还是直接点里面的update
有一定的概率报错导致工具无法启动,向google提了issue也只是让你reinstal。
看来还是逃不了直接官网下载。
然后同样的更新操作我在不同的时间执行发现直接就更新成功了。
如果失败的朋友请试试再试一次。