文档章节

手动将eclipse工程转换成android studio工程 - 了解新建一个gradle项目时Gradle帮你做了哪些工作

SuShine
 SuShine
发布于 2017/03/21 10:46
字数 524
阅读 12
收藏 0

eclipse => android studio

思路

1 在项目根目录添加 gradle2 新建 module 代替原来的project,重新指定目录结构使其指向根目录下的资源路径

1 初始化gradle目录

  • 初始化gradle

$ cd PROJECT_ROOT
$ gradle init
$ git st
?? .gradle/
?? build.gradle
?? gradle/
?? gradlew
?? gradlew.bat
?? settings.gradle
  • 配置sdk信息

新建文件 local.properties文件只有一行,指定sdk路径 sdk.dir=...

$ cat > local.properties
sdk.dir=/home/sctdroid/android_sdk/  
^C
$ cat local.properties 
sdk.dir=/home/sctdroid/android_sdk/
  • 配置build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

2 添加 module

  • 新建 module 文件夹

  • 添加 module 的 build.gradle

$ mkdir calculator
$ cd calculator
$ touch build.gradle
  • 在 build.gradle 中写入配置信息
    成功编译所需要的最小版本

// PROJECT_ROOT/build.gradle

apply plugin: 'com.android.application' // 导入预定义的 android task

android {
    compileSdkVersion 21
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.sctdroid.calculator" // 包名    }
    
    sourceSets { // **重点** 重新指定目标文件的位置。若不指定,gradle 则使用默认的目录结构进行编译,会出现找不到指定文件的错误
        main {
            manifest.srcFile '../AndroidManifest.xml'
            java.srcDirs = ['../src']
            resources.srcDirs = java.srcDirs
            aidl.srcDirs = java.srcDirs
            renderscript.srcDirs = java.srcDirs
            res.srcDirs = ['../res']
            assets.srcDirs = ['../assets']
            jniLibs.srcDirs = ['../jniLibs']
        }
        androidTest.setRoot('tests')
    }

    lintOptions {
        abortOnError false
    }

}

以计算器为例

// PROJECT_ROOT/calculator/build.gradle

apply plugin: 'com.android.application' // 导入预定义的 android task

android {
    compileSdkVersion 21
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.sctdroid.calculator" // 包名
        minSdkVersion 14
        targetSdkVersion 17
    }

    signingConfigs { // 添加签名文件
        custom {
            storeFile file("../app.keystore")
            storePassword "storepassword"
            keyAlias "app"
            keyPassword "keypassword"
        }
        // 多渠道打包在这里添加,格式和 custom 相同
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    sourceSets { // **重点** 重新指定目标文件的位置。若不指定,gradle 则使用默认的目录结构进行编译,会出现找不到指定文件的错误
        main {
            manifest.srcFile '../AndroidManifest.xml'
            java.srcDirs = ['../src']
            resources.srcDirs = java.srcDirs
            aidl.srcDirs = java.srcDirs
            renderscript.srcDirs = java.srcDirs
            res.srcDirs = ['../res']
            assets.srcDirs = ['../assets']
            jniLibs.srcDirs = ['../jniLibs']
        }
        androidTest.setRoot('tests')
    }
    lintOptions {
        abortOnError false
    }
}

dependencies {
    compile files('../libs/libGoogleAnalyticsV2.jar')
}
  • 修改setting.gradle

添加
include ':calculator'

3. 不要忘了 .gitignore

# .gitignore

.gradle
build
/local.properties

可能遇到的问题

  • lint

* What went wrong:
Execution failed for task ':calculator:lint'.
> Lint found errors in the project; aborting build.
  
  Fix the issues identified by lint, or add the following to your build script to proceed with errors:
  ...
  android {
      lintOptions {
          abortOnError false
      }
  }
  ...

0 推荐收藏

本文转载自:https://segmentfault.com/a/1190000006034763

SuShine
粉丝 128
博文 590
码字总数 158440
作品 0
朝阳
后端工程师
私信 提问
Android studio如何导入已有的eclipse工程

google最近新推出了android studio软件来取代eclipse,使用起来确实体验很不错,比eclipse要强大一些,不过,现在包括github上面的代码都是基于eclipse的,因此,我们大部分的工作可能不会新...

古沐风
2014/01/12
27K
0
Gradle和Gradle插件

文章是翻译整理的官网文档developer.android/studio/build/ 一、Gradle和Gradle插件 Gradle:Gradle是一款帮助开发人员更快更好的编译、自动化运行和分发软件的工具。Gradle具有无与伦比的通...

都有米
2018/06/19
0
0
Android Studio vs Eclipse:你需要知道的那些事

转用Android Studio开发前,你需要知道 我写的这个指引里,包含了一些当你要把Eclipse项目转到Andorid Studio前需要知道的基本信息。如果你有一个大型项目还没完成从Eclipse到Android Studi...

oschina
2014/03/12
11.5K
23
读书笔记--Android Gradle权威指南(上)

最近看了一本书《Android Gradle 权威指南》,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所以打算写一篇读书笔记,将书中一些我个人觉得蛮有用的点记录、总结一下。 前言 首先,...

请叫我大苏
2018/05/24
0
0
给 Android 开发者的 Gradle 入门指南

本文的目的是为您提供关于 Gradle 的高级概述,以及在开发 Android 应用程序时如何适应整个构建系统。 我将通过 Gradle 和 Gradle 的 Android 插件的基础知识,以及新的 Android 项目附带的默...

oschina
2017/11/22
3.5K
2

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
700
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
39
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
25
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
74
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
73
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部