Eclipse项目转Android

  刚来某公司的时候,发现Android开发仍然还在使用Eclipse,编码无规范,渠道打包竟然手动,svn版本主干分支管理混乱,总之各种low。。。

对于有强迫症的我来说,属实不可忍。但无奈,新人一个,没有话语权。

  经过几个月的磨练和见证,实战中终于可以雷厉风行的把自己最精锐的东西展示(说白了就像处女座的追求完美)。

  前面讲述到了Android 开发规范 ,当然这是转载别人的,涵盖的范围还是比较广的。

  另外还有Eclipse打包多渠道包,这个也是转载别人的,说明的很详细,当然这里面关系到我本地Eclipse版本和环境,因而gradle的版本以及语法都有不一致的地方,但关键是要看报错的信息,具体的问题具体分析,不懂的通过百度总能解决。再次有Eclipse打包多渠道包(库工程版),这个是在上一篇的基础上延伸的,全部都是自己爬坑,主要还是gradle的配置。

  svn版本主干分支管理有专门的人员负责,主要是思想是:保证基线代码不被改得(主干),每个版本代码各一份(分支);版本迭代完成,合入到主干中去(我司就是这样),其实我觉得应该是基线代码也要区分版本保存,这样可以追查历史版本代码(真的很关键),就是基线不合 并(上家公司就是这样做)。

  Android Studio(AS)出来的时候的确很多bug,不过相比Eclipse是恨人性化的IDE了。现在我使用的AS版本是2.3.2,因为gradle版本也是2.3.2,那么Eclipse项目转成AS项目,坑就比较多了。

1.我开始是Eclipse导出的方式生成gradle文件,再通过AS导入。这个方式有很多报错,主要是Eclipse导出的时候gradle版本是根据Eclipse版本生成,那么和AS环境就会冲突,报错在所难免,另外就是项目的文件结构和Eclipse差不多,看起来很不舒服,比较AS是有project、packages、Android这样的展示模式切换的。所以这个方式,拒绝。

2.我算是比较笨了,打开AS,创建一个AS项目,包名、项目名和Eclipse项目的包名、项目名一致;

3.将Eclipse项目相关的文件拷贝并替换AS项目下的文件,一般需要拷贝的是src、res、libs、AndroidManifest等;

4.这个时候项目肯定报错的。库工程换成compile的方式在build.gradle(app目录下的),如果找不到,那就把库工程的jar丢到libs中,res需要的全部拷贝到相应的位置。注意:需要的资源不能重复(jar、xml等)。

5.现在是配置文件的时候了:

1)settings.gradle的内容include ‘:app’   (意思是包含的module,如果还有其他的module,加上去) ;

2)local.properties :sdk.dir=E\:\\sdk(声明SDK的路径);

3)gradle.properties:    (默认是org.gradle.jvmargs=-Xmx2048m,下面是我参考网上写的,加快编译打包速度)

            org.gradle.daemon=true            org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8            org.gradle.parallel=true            org.gradle.configureondemand=true 4)build.gradle :默认生成,不需修改。 5)app/libs,放拷贝过来的jar包,注意:不要拷贝.so文件,下面说到.so文件的存放; 6)app/src/build.gradle:关键的文件,第一句apply plugin: ‘com.android.application‘,包含相关的配置sdk版本、资源文件、签名信息、混淆信息、生成包修改    渠道信息、编译依赖等;我会在文章最后贴出整个文件内容; 7)app/src下的androidTest和test文件夹下的java文件删除,如果你需要做单元测试,必须留着(单元测试不做扩展); 8)app/main文件夹下包含assets文件夹(Eclipse拷贝过来),java文件夹(核心java代码),res文件夹(Eclipse拷贝过来)、AndroidManifest和jnilibs(自己创建,  存放.so文件); 9)proguard-rules.pro:代码混淆文件,注意:里面如果有第三方jar包声明,必须删除,因为gradle添加依赖的时候已声明了。 
 到此,选择Build,Clean Project,这时报错,问题应该就是出现在app/src/build.gradle中了,如果是其他的问题,从头检查一遍。而对于app/src/build.gradle中出现的问题,要结合log、message输出去做修改,因为不同版本的gradle的语法有些变化,因为根据报错信息能够解决一切报错,相信我,因为第一个项目的整个过程我花了2天的时候,第二个项目,我只花了半小时。
     
app/src/build.gradle文件全部内容
apply plugin: ‘com.android.application‘

android {  //编译sdk    compileSdkVersion 25     buildToolsVersion "25.0.2"

defaultConfig {        multiDexEnabled true  //允许多个dex文件        applicationId "com.xxx" //包名作为id        minSdkVersion 14     //最低版本sdk        targetSdkVersion 23    //最高版本sdk        versionCode 1       //版本code        versionName "1.0.0"   //版本号    }    //执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。    lintOptions {        abortOnError false    //有报错的时候,依然继续执行        disable "ResourceType"   //忽略代码上的资源类型警告    }    compileOptions {        sourceCompatibility JavaVersion.VERSION_1_7        targetCompatibility JavaVersion.VERSION_1_7    }    signingConfigs {        debug {

}        release {            //填写你的keystore路径和密码们(配置签名)            storeFile file("E:\\xxx.keystore")            storePassword "12345678"            keyAlias "android"            keyPassword "12345678"        }    }    buildTypes {        debug {            minifyEnabled false            //Zipalign优化            zipAlignEnabled true            // 移除无用的resource文件            shrinkResources false        }        release {            minifyEnabled true            //Zipalign优化            zipAlignEnabled true            // 移除无用的resource文件            shrinkResources false            //前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,后一个文件是自己的定义混淆文件            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘            //签名            signingConfig signingConfigs.release            applicationVariants.all { variant ->                variant.outputs.each { output ->                    def outputFile = output.outputFile                    if (outputFile != null && outputFile.name.endsWith(‘.apk‘)) {                        // 输出apk名称                        //def fileName = "app_v${defaultConfig.versionName}_${releaseTime()}.apk"                        def fileName = "android_v${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"                        output.outputFile = new File(outputFile.parent, fileName)                    }                }            }        }    }    productFlavors {//渠道信息配置        server {            manifestPlaceholders = [UMENG_CHANNEL_ID: "1"]        }
     baidu{            manifestPlaceholders = [UMENG_CHANNEL_ID: "2"]        }
    }}//工程依赖dependencies {    compile fileTree(include: [‘*.jar‘], dir: ‘libs‘)    compile ‘com.android.support:appcompat-v7:25.3.0‘    compile ‘com.android.support:design:25.3.0‘    compile ‘com.youth.banner:banner:1.4.9‘}
时间: 2024-08-10 23:26:08

Eclipse项目转Android的相关文章

EClipse 项目导入 Android Studio 导致的乱码问题

最近有一个 Eclipse 项目导入 Android Studio 1.4 时出现乱码,Build 提示 Error:(38, 5) 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?. 源代码是 GBK 格式,Android Studio Encoding 方式是 UTF-8. 解决方式如下: 1.点击 Android Studio 右下角的 File Encoding UTF-8,在出现提示时点击 GBK: 2.在出现的对话框中点击 Reload -> Reload anyway,此时源代码乱

以非gradle方式将 Eclipse 项目导入Android Studio

自从使用了Android Studio之后,相信100%的同学都不会想换回Eclipse了.以前我觉得Eclipse很好用,用的很开心,但是现在觉得Eclipse已经成渣了.基于IntelliJ IDEA的Android Studio找不到任何让我拒绝的理由.但是有一点可能会有一些小小的不爽,就是Android Studio是基于gradle来构建项目,很多同学还是用不惯,而且大部分项目还是用ant来打包的.那么问题来了,怎样把 Eclipse 项目导入Android Studio呢? 谷歌提供

Eclipse项目导入Android Stuio 配置出现 Timeout waiting to lock buildscript class cache for build file 'H:\studioproject\Generic_SN\build.gradle'

Eclipse项目导入Android Stuio 配置出现 Error:Timeout waiting to lock buildscript class cache for build file 'H:\studioproject\Generic_SN\build.gradle' (C:\Users\Administrator\.gradle\caches\2.2.1\scripts\build_81ep6udn3nlzszbotl32uedjz\ProjectScript\buildscri

将Eclipse项目导入Android Studio出现中文乱码的问题

以前一直以Eclipse开发项目,最近正在研究Android Studio的使用,首先想到到的是将Eclispe项目导入AS. 可以方便查看以前写过的代码,然后出现了中文乱码的问题,通过搜索了一些资料,找到了解决方法. 解决方法为如下四步: 1.点击AS右下角的 File Encoding UTF-8,选择GBK. 2.在出现的对话框中选择Reload-> Reload anyway,此时中文乱码消失,改为中文. 3.点击AS右下角的 File Encoding GBK,选择UTF-8. 4.在

eclipse项目转android studio详解

第一步:项目导入 向AS中导入项目的方法有两种(其实是一种). 方法一:是在eclipse中先导出为gradle(如图1),然后打开AS,找到项目中的gradle文件,直接导入. 方法二:直接在AS中找到项目,直接导入.(如图2) 图1 图2 第二步:项目初始化 项目导入进来后,就需要调整到能够使用的状态.此处就拿有libs文件下有jar包的项目做介绍 首页将项目弄成我们习惯的eclipse目录风格(如图3) 图3 然后,就需要处理我们的jar包了,jar包在AS中叫做依赖包,所以就要去添加这个

Android Studio初体验之导入eclipse项目

本篇使用到的Android Studio版本为1.0, Eclipse ADT版本22.3.0. 主要介绍两种导入方式: 先用Eclipse导出为Gradle build files,然后直接用Android Studio导入该项目. 用Android Studio 直接导入Eclipse项目. Android Studio默认使用 Gradle 构建项目, Eclipse 默认使用Ant构建项目.建议Android Studio导入项目时,使用 Gradle 构建项目. 导出Eclipse 项

AS中导入eclipse项目时出现的问题

直接贴问题 Error:Minimum supported Gradle version is 4.1. Current version is 2.14.1. If using the gradle wrapper, try editing the distributionUrl in /Users/skye/ASPro/jobASpro/RFID/LaiAoSi/UhfReader/gradle/wrapper/gradle-wrapper.properties to gradle-4.1-a

怎么将Eclipse 项目切换到Android Studio

怎么将Eclipse 项目切换到Android Studio? Google 官方已经给出了两种解决方式解决方案. 第一种 直接选择目录,next 一直到最后,我们的Eclipse 的项目就到了Android Studio 上了,需要注意的是,这样导入的项目还是会保留Eclipse 的构建方式,比如我们在Eclipse 上使用Ant 构建,迁移后还是会是会用Ant 构建. 导入Eclipse ADT 第二种 首先,我们在Eclipse 将项目导出为Gradle 项目. 选择导出 导出Gradle

eclipse下创建android项目src和layout下为空

在eclipse中创建android项目,src目录和layout目录下为空,现在开始解决这个问题(这只是一个开始). 在网上查找答案,说是eclipse版本和adt版本不兼容. 第一步;查看eclipse的版本号. Help-->About Eclipse--->选择eclipse的logo图标 第二步:查看adt插件的版本号 Help->About Eclipse--->点击,installation Detail 第三步:如果版本号兼容,那么就更新adt版本 Help---&