开发者社区> 单红宇> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Android项目从Eclipse增加支持Android Studio

简介:
+关注继续查看

使用Eclipse开发Android已经有些年头了,然而Android Studio(后面简称AS)为谷歌自己推的IDE。现在AS已经出了2.0版本,其功能的确要比Eclipse要多。

AS对硬件要求较高,Eclipse使用ADT插件也是简单易用。本文不对这2个IDE的优缺点进行阐述,没有哪个一定能完全替代哪一个这么一说,选择自己喜欢的就好。

不过博主喜欢接触新事务,AS都出这么久了,也该拿出来遛遛了。对于一直使用Eclipse开发的安卓项目如何转换增加支持AS。(是增加支持AS,处理后AS和Eclipse都可以正常使用,而不是把Eclipse废掉)

下面就从一个简单的例子来一步步说明:
1、使用Eclipse创建一个Android项目,保证可以正常运行。项目结构截图如下:
1

2、右键项目 —> Export —> Android —> Generate Gradle build files —> Next —> Next —> Finish
2
3

这样操作后,项目下面就生成了 build.gradle 文件。

至此,我们还需要在项目下新增一个 local.properties 配置文件,指定sdk 目录,local.properties 内容如下:

sdk.dir=D\:\\Android\\android-sdk_r10-windows

或者环境变量中有设置 ANDROID_HOME 也可以。

3、此时我们使用命令来验证一下是否可以使用gradle打包了。

  首先要配置GRADLE环境变量。然后在cmd中进入当前项目目录,执行命令“gradle clean”,命令行中会看到自动下载所需插件和相关包。

如果中间出现错误:
FAILURE: Build failed with an exception.

  • Where:
    Build file 'F:androidWorkspaceMyAndroidbuild.gradle' line: 10
  • What went wrong:
    A problem occurred evaluating root project 'MyAndroid'.

Failed to apply plugin [id 'android']
Gradle version 1.10 is required. Current version is 2.10. If using the gradle wrapper, try editing the distributionU

rl in F:androidWorkspaceMyAndroidgradlewrappergradle-wrapper.properties to gradle-1.10-all.zip

则检查一下build.gradle,修改 classpath 'com.android.tools.build:gradle:0.12.+' 为 classpath 'com.android.tools.build:gradle:2.0.0-alpha3' 与自己本地gradle版本对应的地址。

我这样处理后便解决了问题,大家根据自己情况修改配置后再试。直到出现 BUILD SUCCESSFUL 为止。

4、打包apk包
在项目目录下执行命令:gradle build 即可对该项目进行打包。
可以指定--debug或 --info 参数输出日志。

执行成功后,生成的apk文件在项目目录下的 build/outputs/apk 目录中。build 目录下存放了一些报告等文件。

对比一下我们一开始的项目结构,发现我们项目中增加了一些文件,其实我们是可以手工拷贝这些文件到一个新项目中的,上个截图:
4

其中gradlew(Linux) 和 gradlew.bat(Windows) 是为我们生成的可以直接执行的gradle命令。
如(Linux下):
./gradlew -v 查看版本号
./gradlew clean 清除项目下的build文件夹
./gradlew build 检查依赖并编译打包

注意使用build 打包会把debug、release环境的包都打出来,如果正式环境只需要打包release,请使用下面的命令:
./gradlew assembleDebug 编译并打Debug包
./gradlew assembleRelease 编译并打Release包
./gradlew installRelease Release模式编译并安装
./gradlew uninstallRelease 卸载Release安装包

至此,我们已经将一个普通安卓项目变成一个支持gradle 命令打包的项目。

上面啰嗦了这么多,只是想让大家知道怎么使用gradle 打包apk,而不是那么直接的就转移到AS中。

5、下面可以将项目导入到AS中了
在AS中选择 File —> Open ,然后选择我们项目的目录(如:F:androidWorkspaceMyAndroid),再等待一会。

最后来张导入AS后的工程截图:
5

6、配置签名信息,使打包后的apk自动签名
在build.gradle 中的android {……} 中添加签名配置:

android{
    …………
    …………
    …………

    //签名信息
    signingConfigs{
        releaseInfo {
            storeFile file("shanhy(xiaoshan).key")
            storePassword "xiaoshan"
            keyAlias "shanhy"
            keyPassword "xiaoshan"
        }
    }
    buildTypes {
        //Debug模式
        debug {
        
        }
        
        //Release模式
        release {
            // 是否启用混淆
            minifyEnabled false
            // 混淆文件配置
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            // 签名信息配置(如果上面配置了defaultConfig则可以不用指定signingConfig)
            signingConfig signingConfigs.releaseInfo
        }
    }

执行命令 ./gradlew build 或者 ./gradlew assembleRelease 便可在build/outputs/apk 下面看到生成的已经签名的apk

注:本文中使用的 ./gradlew 为在Linux下的命令,如果在Windows下面,请使用 gradlew.bat

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android Studio的Project有某个项目,Build Variants却没有,如何添加物已有项目?
Android Studio的Project有某个项目,Build Variants却没有,如何添加物已有项目?
0 0
Android studio项目中的gradle.properties详解
在使用Android Studio新建Android项目之后,在项目根目录下会默认生成一个gradle.properties文件,我们可以在里面做一些Gradle文件的全局性的配置,也可以将比较私密的信息放在里面,防止泄露。 下面我们就来分析下IDE自动生成的gradle.properties文件,及其常见的用法。
0 0
Android Studio项目中的Gradle视图内容
Android Studio项目中的Gradle视图内容
0 0
神奇的Android Jetpack 项目模版代码之线上生成
神奇的Android Jetpack 项目模版代码之线上生成
0 0
开发android项目的常用jar包
开发android项目的常用jar包
0 0
【Android】Android对于Activity的运用以及ViewGroup和 用户界面组件在项目中的运用
【Android】Android对于Activity的运用以及ViewGroup和 用户界面组件在项目中的运用
0 0
一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法
一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法
0 0
Android【将已有的项目以Library的形式导入到另一个的项目中】
Android【将已有的项目以Library的形式导入到另一个的项目中】
0 0
Android 组件化(一)项目模式管理、模式切换
在进行安装开发的时候我们经常会对项目进行不同业务逻辑处理分包,例如专门处理网络、数据库、业务逻辑代码的,如果我们不分包则所有东西写在一起,势必在开发过程中会浪费很多时间在寻找文件上,而分包的思想源于模块化,例如一些utils类,专门放到一个包下面,这样在使用的时候就能很快找到。节省开发时间,降低后期维护成本,那么组件化是什么?
0 0
Android 天气APP(三十六)运行到本地AS、更新项目版本依赖、去掉ButterKnife
最近发现这个项目好似迎来了第二春,GitHub上的Start和Fork增加的很快,我的猜测是学生在通过这个项目来学习和完成自己的作业。随着Android版本的更新,Android Studio的更新,项目中一些内容不能在新版本中很好的使用,甚至出现编译不了的情况,这对我来说没啥,但是对于拿到项目满心欢喜的学生来说,运行不了,无疑是致命的,而我写在项目Readme下面我将演示一下怎么在本地运行这个项目的代码。
0 0
+关注
单红宇
软件从业者,爱好技术。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android组件化实现
立即下载
蚂蚁聚宝Android秒级编译—— Freeline
立即下载
Android插件化:从入门到放弃
立即下载