这是是一篇迟来的文章毕竟这年头基本都用上了Android studio了。由于历史原因公司Android开发还在用eclipse,最近有时间就想着迁移一下代码。把eclipse的代码迁移到Android studio上来,废话不多说上干货。
首先需要从eclipse导出为带有gradle的工程。
下面我给出参考链接我也为大家操作一遍。
首先点击你项目右键选择 Export然后选择android 选 将工程导出为Generate Gradle build files , 这一步很重要哦 , 只有导出为这个模式才能做到兼容android studio , 也就是这个工程在eclipse和android studio上都能跑如下图
然后一路next 选中你要导出的工程 如图
接着继续Next 继续下一步 , 一定要将Force overriding of existing files选中 , 以防之前有过类似操作已经生成以一些文件
这一步比较关键
接着继续点击Finish , , 继续点击Finish , 至此 , eclipse这边的操作就完成了接下来需要修改几个地方才能导入as中。因为ec导出的所用的gradle版本和gradle插件都比较老需要我们手动修改问现用的as依赖的gradle版本。和gradle插件版本,上图
修改完之后就可以导入到as中了
报错了不要慌很正常我们根据log改就行了。这里的log是说我们的minSdkVersion targetSdkVersion有问题那我们就改呗。
根目录的build.gradle改为如图。删掉
apply plugin: 'com.android.library'
他说不应该在清单中出 ,呸,不在清单中出现。那我就删掉好了。
我们的工程呢最终出来的是一个jar包对应在as中应该是一个 Android Library的Module那么我们就新建一个Android Library的Module 名字随意。然后把根目录的src下的代码复制到新建的module的src下。
由于我们要打出来jar包因此我们需要在build.gradle内添加代码,使我们的modle能够打出来jar包。
编写好脚本后我们执行打包脚本如图
双击amakeJar就可以执行打包脚本了。
报错说 程序包org.apache.http不存在这是因为是Android6.0之后,SDK就不再支持HTTPClient,仅保留了几个类,推荐使用HTTPURLConnection类,因为他可以通过透明压缩和响应减少网络的使用并最大限度的降低电量功耗。如果仍需使用的Http的话,需要在build.gradle中添加引用,声明依赖项`(来自官方API)那么我们就把版本改成 android6.0以下或者手动引入支持包,重新build。
然后还是报错。
我们在 bulid.gradle android中加入
lintOptions {
abortOnError false
}
代码重新编译并build 成功
我们可以在modle的 build下找到打出来的jar 如下图,
到这里抽象成框架已经成功移植到as上,接着我们试试接入一个渠道,渠道也是一个modle最终是生成一个接入了渠道SDK的jar那么我们在再次新建一个modle。同上面新建抽象层modle一样。这里不再赘述。需要注意的就是渠道需要依赖抽象层所以需要在渠道的build.gradle里添加依赖
implementation project(':u8sdk')
导入渠道的相关资源 libs和res等等。
打包生成jar等等都和上面抽象层一样。
最后放一张整体的项目结构图
至此eclipse 的SDK工程源码移植到as完成。最后感谢在移植过程中提供资料的技术大大,感谢互联网,感谢cctv感谢。此篇文章仅供交流参考。
-