!!!!太他妈的累人了!整整折腾了两天!!!!!!!

不知从那个版本开始ImportModule... 从AndroidStudio的File菜单中消失了,在0.2之前的版本作为library的模块可以像Eclipse里一样,绝对路径可以完全和主Applicaiton无关,比如如下的目录结构:

/AllProjects/androidProject/myApplication

/Libs/android/ActionbarSherlock

这里myApplication用到ActionbarSherlock这个库,但是到了0.2.x版本行不通了。首先你得把ActionbarSherlock移成和myApplication同级目录,但如果按照上面的目录结构,eclipse引出Gradle后,用AndroidStudio 引入后,Project的名字叫andropidProject,如果在androidProject目录下还有其他项目,引出到AndroidStudio后显然会引起混乱,所以重新调整目录结构如下:

/AllProjects/androidProject/myAppProject/myApplication

/AllProjects/android/Project/myAppProject/ActionbarSherelock

然后从EclipseExport Gradle...但是:别以为这样就OK了,后面的问题仍然是一连串的,下面我分步骤讲解下。

基本环境:

Ubuntu 13.04 64bit

Eclipse Standard 4.3 (KEPLER)

Android Studio 0.2.8 Build#AI-132.821530

JDK "1.7.0_25"

Android SDK Tools 22.0.5

项目:

myApplication

依赖库:

ActionbarSherlock

drag-sort-listview

第一步:

调整目录结构,并在Eclipse里正确编译。

/

├─ AllProjects

│    └─ androidProject

│    └─ myAppProject

│          ├─ myApplication

│          ├─ ActionbarSherlock

│          └─ drag-sort-listview

└─ android-sdk-linux

第二步:

导出gradlebuild 文件。

选择Eclipse->File->Export...,在Export对话框中选择Android->GenerateGradle build files .具体导出方法参看Android官方介绍Migratingfrom Eclipse 。选中所有要导出的项目,myApplication,actionbarsherlock, drag-sort-listview ,点下一步,确认Projectroot 是否是/AllProjects/androidProject/myAppProject, (如果不是,说明你的项目目录结构不正确),最后向导会在Projectroot 目录中生成下列文件和目录:

gradle/

build.gradle

gradlew

gradlew.bat

settings.gradle

第三步:

运行AndroidStudio ,Welcome窗口中选择ImportProject... File->ImportProject... 选择导入/AllProjects/androidProject/myAppProject/build.gradle.

接下来第一个问题来了,按照Android官方站点的介绍,选择usegradle wrapper , 出现如下错误:

这里有两个问题,第1个问题比较复杂,先解决第2个问题。

第2个问题产生的原因可能是我在AndroidStudio 中将ADT目录指向 /android-sdk-linux,而不是AndroidStudio Bundle 的ADT(在AndroidStudio 目录下的SDK目录),我想通常同时用Eclipse和AndroidStudio的都会这么配置吧,否则机器上保存两份ADT不是有病嘛!

3.1步:

Projectroot 目录中创建local.properties文件,文件中加上如下行:

sdk.dir=/home/royer/android-sdk-linux

(你也可用AndroidStudio new Project.. 生成一个AndroidProject ,让后从那里copy一个local.properties过来)。

现在回头看第一个问题,这个应该是AndroidStudio 或者Intellij的Bug...Anyway, 解决方法如下:

3.2步:

选择Uselocal gradle distribution , Gradle home 里输入你本地的Gradle路径,如下图:

Gradle可以到Gradledownload 下载,我用了1.7版,1.6,1.8应该也都可以。

到此时,导入是成功了,但编译通不过,碰到的第1个问题是:

Gradle:Execution failed for task ':myApplication:processDebugManifest'.

>Manifest merging failed. See console for more info.

按照提示,开console,运行./gradlewbuild ,可以看到原因,是myApplication指定的android:targetSdkVersion低于actionbarsherlock指定的版本。

第四步:

修改AndroidManifest.xml确保主项目和库项目的tagetSdkVersion一致.

重新build,刚才错误消失了,但新出了19个错误,大致如下:

Gradle:Error while executing dx command

Gradle:UNEXPECTED TOP-LEVEL EXCEPTION:

Gradle:java.lang.IllegalArgumentException: already added:Landroid/support/v4/app/NotificationCompatIceCreamSandwich;

实际上是如何引用supportv4库的问题,Eclipse里是copy到个项目的libs目录下,而AndroidStudio 是引用repositories的方法。参考Android官方文档SupportLibrary Setup,解决如下:

第五步:

修改每个项目的build.gradle文件。

dependencies{

compile "com.android.support:support-v4:18.0.+"

compile fileTree(dir: 'libs', include: '*.jar', exclude:'android-support-v4.jar')

.....

}

注:如果你的libs目录里只有android-support-v4.jar,则可以把comile fileTree 整行删除。

OK,到此为止,至少我成功的import了。

本文同步在我的blogger http://royer-wang.blogspot.ca/2013/09/android-studio-02x-eclipse.html

AndroidStudio 0.2.x 引入多模块Eclipse项目的更多相关文章

  1. <转>创建支持eclipse的多模块maven项目

    如何使用eclipse创建Maven工程及其子模块 1,首先创建一个父类工程   子模块继承父类工程      并在父类工程的pom.xml文件中定义引入的jar及其版本号     子模块可以引用 2 ...

  2. 创建支持eclipse的多模块maven项目

    通过maven可以创建多个关联模块的项目(Multiple Module Projects).由一个总的模块,下面包含多个子模块(子模块还可以包含子模块). 这种maven功能能支持大型的项目构建,往 ...

  3. 带你玩转Eclipse项目转成AndroidStudio项目

    随着Android对Eclipse开发工具的淘汰,越来越多的公司使用AndroidStudio进行相应的Android开发工作.如此,原来用Eclipse开发的项目,怎么导入到AndroidStudi ...

  4. electron主进程引入自定义模块

    对于electron以及nodejs开发,是一只小菜鸟,第一次想做个应用 只能边学边做,遇到各种各样的问题. 1.不想把所有的主进程函数放到一个文件中,这样文件比较乱,并且不好处理 想法:将另一个js ...

  5. py文件控制台执行时,报错:引入的模块不存在

    1.描述:该模块在IDE中是可以正确执行的.但是从cmd控制台执行时,报错:该模块引入的其他模块不存在. 2.解决:在该模块的#encoding:utf-8 之后另起一行加如下代码: #encodin ...

  6. 一、基础项目构建,引入web模块,完成一个简单的RESTful API

    一.Spring Boot的主要优点: 为所有Spring开发者更快的入门 开箱即用,提供各种默认配置来简化项目配置 内嵌式容器简化Web项目 没有冗余代码生成和XML配置的要求 二.使用maven构 ...

  7. SpringBoot2.x入门教程:引入jdbc模块与JdbcTemplate简单使用

    这是公众号<Throwable文摘>发布的第23篇原创文章,收录于专辑<SpringBoot2.x入门>. 前提 这篇文章是<SpringBoot2.x入门>专辑的 ...

  8. 使用Maven将Hadoop2.2.0源码编译成Eclipse项目

    编译环境: OS:RHEL 6.3 x64 Maven:3.2.1 Eclipse:Juno SR2 Linux x64 libprotoc:2.5.0 JDK:1.7.0_51 x64 步骤: 1. ...

  9. Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建

    Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建 由于公司里的Solr调试都是用远程jpda进行的,但是家里只有一台电脑所以不能jpda进行调试,这是因为jpda的端口冲突.所以 ...

随机推荐

  1. 在C#调用C++的DLL方法(一)生成非托管dll

    C#与C/C++相比,前者的优势在于UI,后者的优势在于算法,C++下的指针虽然恶心,若使用得当还是相当方便的,最重要的问题是,市面上很多流行的开发工具库,几乎没有不支持C++的,但全面支持C#只能说 ...

  2. NetWare

    本地网络连接属性中就有Netware客户端服务项 概括的说,Netware是NOVELL公司推出的网络操作系统,Netware最重要的特征是基于基本模块设计思想的开放式系统结构. Netware是一个 ...

  3. ThinkPHP第二十四天(JQuery常用方法、TP自动验证)

    ---恢复内容开始--- 1.JQuery常用方法 A:JS中可以用json格式数据当做数组使用,如var validate={username:false,pwd:false,pwded:false ...

  4. 虚拟机NAT模式主机ping不通虚拟机解决方案

    本篇没有抓包,只是简单一个实施.需要的童鞋可以拿走这个方法. 虚拟机与真机通信三种模式, 桥接模式,NAT 模式 ,HOST 模式. 桥接就是在真机的网络上模拟一个网卡,给虚拟机申请一个和真机在同一个 ...

  5. 未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的解决办法

    未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“ ...

  6. ESX与ESXi管理员必备25个命令

    [转载] 正 如所有的虚拟化管理员都知道,要应对VMware基础设施上需要的更多虚拟化管理,关键在于任务的自动化.虽然VMware ESX主机可以管理与vSphere客户端用户界面,数据中心管理员往往 ...

  7. 安装CAD出现Error 1904.Module的解决方法

    在安装AutoCAD2008时,安装过程中出现了一个小错误,虽然说不影响使用,也不影响功能,但还是需要把这个问题解决,今天就和大家分享解决这个问题的方法. 错误描述 会在安装过程中出现错误提示:Err ...

  8. 工具类_java 操作cookie

    import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;im ...

  9. 转:一个strcpy的问题(很容易做错)

    下面的执行结果是什么? #include<stdio.h> #include<string.h> void main() { "; "; strcpy(d, ...

  10. UVALive 6947 Improvements(DP+树状数组)

    [题目链接] https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=sho ...