升级安卓开发环境到Android Studio和Genymotion

来源:互联网 发布:多益网络 收入 编辑:程序博客网 时间:2024/05/27 19:27

2014新年第一天,全面升级安卓开发环境。主要做两件事:1. 把IDE从eclipse转到Android Studio(又去掉了一个与IBM Rational的联系,多少有些感伤,可是,旧的不去新的不来啊),将以前的安卓projects移到新的IDE下 2. 使用Genymotion 替代安卓自带的emulator。

安装Genymotion

1. 下载安装Genymotion之前需要免费注册一个账号。这个账号不仅在下载时需要,在以后创建每一个虚拟设别时也都会用到

2. 下载带 VirtualBox的Genymotion安装包并且安装。 windows系统下的下载地址在这儿

详细说明请点击官方说明网站


安装Android Studio

Android Studio是建立在IntelliJ上的开发IDE。它集成了多种方便的android 工具,包括基于Gradle的build支持,代码检查工具lint和android SDK等。windows版本的下载地址在这里

下载完成后按提示进行安装。

详细说明请点击官方站点


使用Android Studio(以导入GreenDroid为例)

GreenDroid是一个用于简化android UI开发的开源库,但其中提供的许多API,高版本的Android SDK也已经支持,所以这个项目的owner现在已经不再维护它了,但看看其中的代码还是能有很多收货的。下面就以GreenDroid的导入为例简单说明Android Studio的使用

启动Android Studio后系统弹出一个quick start界面,可以选择打开现有项目或者创建/导入项目,也可以选择plugin管理。可以在这时候安装Genymotion plugin,也可以打开项目后再安装这个plugin。

下载greendroid(git 命令:git clone http://github.com/cyrilmottier/GreenDroid.git)。

假设GreenDroid被下载到目录d:\projects\greendroid,有两种方式可以导入greendroid到Android Studio. 第一种是通过导入gradle的方式导入。这需要先在Eclipse中导入GreenDroid,然后再把它导出生成Gradle文件,然后点击import project后选择目录d:\projects\greendroid\bin\gradle。我采用这种方式导入时一直报告gradle文件版本太低导入失败的错误,所以就采用了第二种方式。这种方式的导入过程如下:

1. 点击import project后选择目录d:\projects(注意不能选择目录d:\projects\greendroid,否则会强制要求采用导入gradle方式)。系统提示import方式。选择第一种:Create project from existing sources. 

2. 设置项目名称GreenDroid,project location设为d:\projects\greendroid,按wizard走下去完成导入。注意当进行到"选择project SDK"页面时,注意选择Android 3.0以下的Google API版本,原因有二。一是有项目中用到了Google Map API,所以必须选择带了map.jar的Google API作为Target,而是Android 3.0以上支持ActionBar,这会跟GreenDroid的ActionBar发生冲突,产生许多错误。

项目导入后会自动build,build 完成点击运行图标,即可启动ADT emulator并自动加载运行demo应用 GDCatalog。

设置GenyMotion plugin

在Android Studio的工具栏点击图标,第一次运行需要输入genymotion的安装地址,在windows下,地址为:C:\Program Files\Genymobile\Genymotion 。选择OK关闭。第二次点击该图标可以对Genymotion plugin进行配置,创建虚拟设备。针对该项目,需要选择创建带有Google API的虚拟主机(遗憾的是genymotion 2.0以上不支持Google API,详情见此链接) 。为了可以选择在GenyMotion的虚拟设备上运行应用,需要点击Run->Edit Configuration打开Run/Debug Configuration对话框,并在Target Device section选择Show Choose Dialog。这样在运行应用时会问使用何种设备运行,然后选择genymotion.

已知问题和解决方案:

1. 如果在运行android studio之前genymotion已经创建了virtual device,那么在运行genymotion plugin时会出现android studio吊死现象,这个问题在eclipse中也存在

解决办法:在运行android studio前保证genymotion没有安装任何虚拟设备。运行studio后使用genymotion plugin添加设备(最近的genymotion已经解决该问题了)。

2. 导入gradle时报告gradle文件版本太低造成导入失败

解决办法:

  • 修改gradle wrapper设置-找到<project root>\gradle\wrapper\gradle-wrapper.properties,把distributionUrl的gradle-1.6-bin.zip 改成gradle-1.9-all.zip

./gradle/wrapper/gradle-wrapper.properties :

<code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: inherit;"><span class="com" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(128, 128, 128); background-color: transparent;">#Wed Apr 10 15:27:10 PDT 2013</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">distributionBase</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">=</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">GRADLE_USER_HOMEdistributionPath</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">=</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">wrapper</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">distszipStoreBase</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">=</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">GRADLE_USER_HOMEzipStorePath</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">=</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">wrapper</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">dists<strong><span style="color: rgb(255, 0, 0);">distributionUrl</span></strong></span><strong><span style="color: rgb(255, 0, 0);"><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">=</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">http\:</span><span class="com" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">//services.gradle.org/distributions/gradle-1.9-all.zip</span></span></strong></code>

  • 在项目的根目录下创建文件local.properties,在文件中设置android sdk的路径(注意如果是用 "\" 做路径分割符,必须用双斜线"\\")

<code style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: inherit;"><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">sdk</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">.</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">dir</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">=</span><span class="str" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(128, 0, 0); background-color: transparent;">/home/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">user</span><span class="pun" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">/</span><span class="pln" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; background-color: transparent;">pathtosdk</span></code>

  • 修改build.gradle,将其中的com.android.tools.build:gradle:0.5.+ 改成 com.android.tools.build:gradle:0.7.+

小贴士:如果还遇到gradle build失败,可以在命令行下转到项目根目录下找到gradlew,用gradlew --debug看更详细的错误。

3. 导入gradle时报告"Failed to import Gradle project at '...'  java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map

解决办法:

原因是由于android studio 0.3.2对Gradle 1.9不兼容。将android studio升级到0.4以上版本可以解决该问题

4. IDE异常中断后再运行,gradle project同步总是出现下面错误: Could not run build action using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.10-bin.zip'

解决办法:点击File->Invalidate Caches/Restart 

1 0
原创粉丝点击