MAC中如何配置两套android-sdk环境

1 背景介绍

随着android studio的完善和普及,越来越多Android app开发者从Eclipse+ADT环境转到Android Studio(后文统一用AS表示)。但是,AS往往需要较新的SDK,从目前的测试结果来看,在MAC OSX 10.10系统中很多基于老版本SDK开发的东西并不能完美运行在新版本的SDK中,即两者并不能完美兼容,比如,在Eclipse+ADT环境中创建的模拟器镜像或快照就无法在AS中使用(具体表现为模拟器或快照无法启动,或启动之后马上crash)。因此,最好的解决方案就是在系统中同时使用两套SDK,老版本的给Eclipse使用,新版本的用于AS。

目前检测到的主要问题发生在DDMS上,貌似新版SDK中的DDMS并不能兼容原来版本较旧的Eclipse。具体原因待以后有时间了再深究~

2 如何创建两套SDK

创建两套SDK很简单,但是如何让两套SDK独立运行且互不干扰却相对麻烦。为方便描述,下文将老版的SDK目录称做old_sdk,新版的SDK目录称作new_sdk。

首先由于笔者当前还是以Eclipse开发为主,所以默认SDK就是old_sdk,只有在使用AS的时候才需要用到new_sdk。因此,笔者在~/.bash_profile文件中做了如下配置:

#default sdk
export ANDROID_HOME=/Users/your_user_name/android/env/old-android-sdks

这样我们在启动程序的时候默认就是用上述old_sdk目录。那么如何在启动AS的时候使用new_sdk呢?同样是在~/.bash_profile中操作,这里我们添加一条alias命令:

# set new sdk envrionment for Android Studio
alias myas=‘export ANDROID_HOME=/Users/your_user_name/android/env/new-android-sdks && open -a /Applications/Android\ Studio.app/‘

通过上面的设置,当我们需要使用AS的时候只需要在终端中输入myas即可。不过这种方式并不完美,因为如果我们新开一个终端,然后使用adb命令的话,其默认是使用老版的adb,这或多或少会出现一些兼容性问题。为什么会这样呢?答案见bash_profile中的PATH环境变量的设置:

export  PATH=/user/local/bin:$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

因为PATH的值是在我们更改ANDROID_HOME之前就设置完成的,所以此时的ANDROID_HOME是old_sdk。因此最好的方式就是提供一个alias命令可以一次性切换ANDROID_HOME和PATH:

# set new sdk envrionment for Android Studio
alias change_android_sdk=‘export ANDROID_HOME=/Users/your_user_name/android/env/new-android-sdks && export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH‘
alias myas=‘change_android_sdk && open -a /Applications/Android\ Studio.app/‘

通过上述设置,就能确保在AS中使用的一定是new_sdk,且当我们在AS环境下进行Android编程的时候,如果要使用到adb之类的命令,只需要在新的终端中使用change_android_sdk命令就能切换到new_sdk了。

3 遇到的一些奇特bug集锦

问题一:模拟器快照crash问题

注意:为了方便,笔者是使用emulator命令启动的模拟器快照,而非通过Emulator Devices Manager。

由于当初是使用old_sdk创建的模拟器快照,因此该快照并不能与new_sdk兼容。具体crash场景就是:

先在old_sdk环境下启动快照,一切正常。然后使用myas打开Android Studio,一切正常。然后在myas中运行一个app到快照中,一切正常。这时候关闭快照,然后重新启动快照,出现BUG,快照无法启动,或者很快crash!

为什么会这样呢?因为启动了AS之后当前系统中运行的adb, ddms之类的组件都是来自new_sdk的,而笔者启动的快照必须基于old_sdk,所以就出现了兼容性问题。解决方案如下:首先关闭Android Studio, 然后打开Eclipse(新开一个终端使用open命令打开,或者直接通过系统自带的快捷方式启动),这时候Eclipse会自动启动old_sdk中的满足Eclipse运行的必备的组件(如adb, ddms等),且这些组件会替换掉当前系统中正在运行的、由AS启动的那些new_sdk组件,此时我们再启动模拟器快照就没有问题了!

4 总结

   模拟器快照crash问题卡了笔者整整两天时间,起见还进行过一次系统还原o(╯□╰)o。很幸运最后能够解决这个问题,因为终于可以一边保持原有Eclipse环境,一边享受Android Studio带来的高效开发了!

鉴于MAC与Linux的相似性,上述方案应该也可以应用到Linux环境中,只是上述.bash_profile文件会根据具体的系统而不同,常见的等效文件名如下:

.bash_login   .bashrc   .profile

时间: 2024-10-17 04:43:33

MAC中如何配置两套android-sdk环境的相关文章

react-native —— 在Mac上配置React Native Android开发环境排坑总结

配置React Native Android开发环境总结 1.卸载Android Studio,在终端(terminal)执行以下命令: rm -Rf /Applications/Android\ Studio.app rm -Rf ~/Library/Preferences/AndroidStudio* rm ~/Library/Preferences/com.google.android.studio.plist rm -Rf ~/Library/Application\ Support/A

android sdk环境变量配置

移动应用自动化测试的配置,先于官网下载Android JDK,然后配置环境变量. 配置android sdk环境变量 1.  新建ANDROID_HOME环境变量,变量值为SDK解压的路径 2. 追加SDK如下目录的PATH变量 tools目录: e:\tyh\android-sdk-windows\tools platform-tools目录: e:\tyh\android-sdk-windows\platform-tools 于cmd内,输入adb和aapt命令,检测环境变量是否配置完成.

配置cordova的android开发环境(无android studio)

原文:配置cordova的android开发环境(无android studio) 趁元旦放假想试一下cordova,不想安装庞大的android studio,所以想最小化安装,居然花了一整天的时间才能正常编译cordova工程,记录一下过程,备将来参考. 安装环境:操作系统:windows 10 x64 第一步:安装nodejs,下载最新版本v10.15.0 第二步:设置npm安装源 npm config set registry http://registry.npm.taobao.org

深度Linux下配置Eclipse的Android开发环境

前段时间开始折腾Linux,其它常用软件都轻松找到了功能相同或相近的替代软件,但到了android开发工具这块,网上好多朋友都推荐使用android studio,而俺是个eclipse的老顽固,在windows下就不习惯使用android studio,再加上手头还有一个在windows下用eclipse做了了一半的项目,只好再折腾下如何在linux下配置eclipse的android开发环境.以前在windows下配置eclipse的android开发环境一般是以下几个步骤:1.安装JDK,

windows8+eclipse+android sdk 环境搭建

前段时间也有搭过环境,当时出现的各种错误和时间上的问题,就把它给搁置了. 现在,又有兴趣了,就重新开始搭建环境了,用了一天的时间了. 操作系统:windows8 eclipse:eclipse 64 android sdk 1.下载的sdk是解压版的,把解压后的文件放在d:/android sdk文件下,在环境变量的path里配置添加路径:d:\android sdk\sdk\tools. 2.打开eclipse,添加adt ,adt本来是通过链接安装的,但出现了安装错误,只有从网上下载了adt

ubuntu 安装配置jdk+eclipse+android sdk

共5步: 1.安装jdk 2.安装eclipse 3.安装android-sdk 4.安装adb 5.在eclipse中安装ADT 1.安装jdk 之前已经安装好了. sudo apt-get install sun-java8-jdk 用命令行安装的好处是不用配置环境变量.   2.安装eclipse 下载地址http://www.eclipse.org/downloads/,选择linux 32bit 双击eclipse就可以启动eclipse程序,启动的时候选择自己的workspace 此

移动APP为什么要开发两套Android和IOS-桥接模式

一.前言 现在用H5开发个 web app 多么方便,兼容两大系统Andriod和IOS.但是为什么许多公司还要开发原生的APP?开发原生的APP就需要开发两套一套运行在Andriod系统的,一套运行在IOS系统的,麻不麻烦啊? 我咨询了一个专业做移动端的朋友说:H5做展示性的还可以,交互太多还是需要做原生的!具体我不懂不做过多描述了. 其实开发几套和我们今天的主题的没有多大的关系,只是一个引子. 今天就一支付宝.微信的例子解说最近正在看的设计模式-桥接模式. 例子只是加深对桥接模式的理解!!!

android sdk环境变量的配置

1. 下载android sdk http://tools.android-studio.org/index.php/sdk/ 建议下载zip格式文件,下载解压即可 2. 解压的SDK文件中,找到"platform-tools"和"tools",找到对应路径,(没有"platform-tools",点击sdk manager.exe更新)如: D:\android sdk\android-sdk_r24.4.1-windows\android-s

maven 在 mac中的配置

思前想后,还是在mac中把maven配置一下吧. 1.下载安装包,由于公司用的版本比较低,考虑到兼容性,建议用低版本的.我用3.0.5 下载地址:http://archive.apache.org/dist/maven/maven-3/3.0.5/binaries/ 注意别下成source源代码版了.出于win的习惯,我选择zip版本 2.解压缩到指定文件夹.注意选那种不需要什么权限的,否则会报错 tips:要显示文件的英文路径可以将文件拖入终端,即变成英文路径. 3.在终端中配置环境变量 按下