迁移原因
a) Google在技术上极力推荐使用Android专用工具AndroidStudio开发,并且AndroidStudio 更新迭代速度很快,在稳定性、便捷性上 已经完全超过Eclipse。
b) Google也早在至少两年前就停止了对Eclipse上插件的更新支持(ADT工具包停留在23.0.6),所以已经无法满足Android新版本的支持,所以迁移项目代码势在必行。
迁移过程
遇到的困难:
由于项目创建于2013年,且项目compileSdkVersion =8 ;build tools version=8 (即基于Android2.2版本开发)的,与现在最新SDK版本 (SDK28 ,Android9.0)差别较大,且项目中依赖部分三方SDK,所以在项目迁移过程共,变动比较多,升级版本号的同时,还要修改部分 已 经 过时不用的代码。
步骤
一、 修改原项目工程目录下的project.properties文件
1、 将target=android-19 替换为target=android-26,因为google已经把19 obsolete,Android studio上已经无法使用
2、将指向的java路径 等删除掉,AS导入项目时不需要那些信息
二、打开AS(使AS处于未打开工程状态,如果已经打开了工程:File àclose Project),选择“import project(Gradle,Eclipse ADT,etc)”选项
选Eclipse项目目录,然后根据英文提示解决可能会出现的问题,此时一般都能够正常的将项目导入的AS中了。
三、根据报错提示,会发现AS中有很多类文件无法找到
1、查看libs目录下的jar包是否已经被add as library ,如果没有则add as library。
2、还很有可能eclipse项目以project library的形式依赖了 第三方的SDK,查看SVN库中的确发现有OneSDK 以及openCVLibrary249等三方SDK,使用AS 以module形式进行依赖:Fileànewàimport modle,分别导入这两个SDK,并在app的build.gradle中进行依赖,操作
四、导入中AS并不能正常编译项目,需要进行一系列的修改
1. AS 3.0之后版本build.gradle 中三方依赖均使用implementation 或api形式进行依赖,所以修改compile为implementation或 api。
2、升级compileSdkVersion 、buildToolsVersion 、minSdkVersion 、targetSdkVersion等版本为 最新版本28,修改minSdkVersion为14 .(android 3.+),后续如开发过程中需要更高版本再进行升级(因为现有所有Android设备中使用Android4.4及以上占比95.3%;使用Android5.0-api21以上已经占有85%的设备,且根据我们面向的用户群体低版本的设备用户会更少)
3、升级部分依赖包版本
4、导入后难免会有 重报jar包,根据报错情况,删除三方库与项目中重复的jar包
5、修改过时的方法eg:notification的创建,使用Builder形式创建
6、其余一些问题,根据报错提示,可自行修改