迁移eclipse项目到studio中配置gradle

今天尝试把已经做好的项目迁移到studio中,目的就是想让原本是eclipse下边的目录结构转换成跟studio下边的目录结构。因为通过网上的那种方式(在eclipse中右键工程目录Export)如下图:


虽然可以生成对应的build.gradle。但是即使生成之后,进入AndroidStudio之后还需要对gradle进行相应的更改,对于不熟悉gradle的人比较麻烦。而且很可能改不好,也改不到跟Studio自己生成的项目一摸一样的体系架构。

这里是之前的项目截图

这些东西都需要拷贝

所以最简单的方式就是现在重新在AndroidStudio里面新建项目。主要项目名称,以及包名要对应之前的项目。因为之前项目有两个引用库,注意新建project之后应该先new module app。

建立完之后,这个最初始的项目架构当然是最标准的studio下面的架构。然后关掉Studio,开始粘贴。

然后把主要的东西粘贴到里面。

把eclipse中的项目下src目录下com文件夹内容整个拷贝到studioworkspace中project下module里面src下边的main下边的java文件夹里面。包括两个library都要这么拷贝。然后是res目录整个覆盖,然后是manifest文件。libs文件夹也要进行相应的拷贝。

这里需要注意的是有可能有重复的jar文件,比如support-v4,而且eclipse不会自动去sdk(sdk里面有整套的support包)里面读取相应的support,只能粘贴到目录libs文件夹下。并且eclipse中即使主工程跟引用工程用的同一个support包,eclipse不会自动认为它们是同一个,必须每个library自己都有一个。它也studio就不一样了,gradle自动构建,对一个supportv4包引用一下就好了,它会去sdk里面找的。

还有说明文档readme.txt以及keystore文件。注意,我这里主工程下面还有so库。


粘贴完之后,重启AndroidStudio,这个时候需要更改build.gradle。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

这里的dependencies是指的studio自带的gradle插件的版本,这里是1.1.3。

project下边的gradle文件,jcenter表示从jcenter这个网站获取第三方版本库,没有的话gradle会自动更新到对应的版本。

有名气的第三方库都会从github同步到jcenter,并且会给用户一个写法:比如:compile 'dev.dworks.libs:volleyplus:0.1.2'

下边是app这个module下边的代码

apply plugin: 'com.android.application'
apply plugin: 'maven'
apply plugin: 'findbugs'
apply plugin: 'checkstyle'

android {
    compileSdkVersion 22
    buildToolsVersion '22.0.1'

    defaultConfig {
        applicationId "包名"
        minSdkVersion 8
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.orhanobut:logger:1.4'//日志工具
    compile 'dev.dworks.libs:volleyplus:0.1.2'//网络数据请求框架,提供了volley的许多实现,保留了volley的高度可配置特性
    compile 'com.android.support:multidex:1.0.1'//对dex文件的优化,解决方法数过多产生的问题
    compile 'com.android.support:appcompat-v7:22.0.0'//提供了UI版本兼容
    compile 'com.android.support:support-v4:22.0.0'//提供了功能版本兼容
    compile 'de.greenrobot:greendao:1.3.4'//ORM框架核心
    compile 'com.google.code.gson:gson:2.3.1'//json数据解析
    compile 'com.android.support:recyclerview-v7:22.0.0'//AbsListView的替代方案
    compile 'com.android.support:cardview-v7:22.0.0'//卡片视图
    compile 'com.android.support:palette-v7:22.0.0'//色彩分析
    compile 'com.android.support:gridlayout-v7:22.0.0'//矩阵布局
    //https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh/blob/master/README-cn.md
    compile 'in.srain.cube:ultra-ptr:1.0.8@aar'//下拉刷新
    //compile 'cn.trinea.android.common:trinea-android-common:4.2.15'
    compile 'com.levelupstudio:expandable-recyclerview:1.0.1'//可扩展recyclerview
}

android 里面的versioncode配置了以后manifest就不用配置了,以这里为准。

其中sourceSets里面main里面的的 jniLibs.srcDirs = ['libs'] 主要是为了libs文件夹下面的so文件。不然不会加载。

dependencies里面的compile fileTree(dir: 'libs', include: ['*.jar'])表示编译libs文件夹下的所有的jar文件。

当然如果jcenter里面有对应的repository,可以写在dependencies里面,这样gradle会下载到本地的库,用的时候引用一下就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值