首先,不要因为编译原因而放弃,studio项目是完全可以转换成eclipse的。先推荐一款好用的网络加速器---小鸟VPN,适合android studio开发者,www.birdsvpn.com。

开源代码板块有很多项目都是android studio开发的,很多同学以为必须要先学会studio,才能编译这些源代码,于是花了很长时间学studio,结果发现还是不会。其实任何studio项目都是可以转换成eclipse的,eclipse目前的编译能力比studio只会多不会少。只要你熟练了,一个中等复杂的studio项目转成eclipse也只是分分钟的事情。

转换方法

下面来谈谈studio到eclipse的转换问题。在studio项目转换成eclipse项目的过程中,对于studio的知识点只需记住条:studio项目中src/main目录下才是真正的项目代码,main下java目录里面的代码对应的是eclispe项目中的src目录中的代码。至于其他什么乱七八糟的Gradle 代码,完全不要去理会。

比如在twoway-view项目中在使用方法里面就有如下代码

1
2
3
4
5
6
7
repositories {
    maven { url " https://oss.sonatype.org/content/repositories/snapshots/ " }
}
 
dependencies {
    compile 'org.lucasr.twowayview:core:1.0.0-SNAPSHOT@aar '
    compile 'org.lucasr.twowayview:layouts:1.0.0-SNAPSHOT@aar '}

看不懂?没关系,我也看不懂。你只要看懂上面红色文字部分的意思就行了。

那么,对于一个studio项目我们如何知道他依赖了哪些东西呢?

一个比较典型的实例

一般来讲一个项目如果没有什么新系统的特征,直接转换成eclipse的目录结构然后eclipse import进去就ok了,但是现在很多项目往往使用了Material Design中的一些东西,比如ToolBar,RecyclerView以及appcompat的主题等,这种依赖关系就比较复杂。

下面介绍如何将它转换成eclipse项目:

更改项目结构

首先下载然后解压:

这么复杂!吓到了是吧,没关系很多文件和目录我们可以直接删掉,从文件的名称来看example下面应该是demo代码,library下面是库代码。其他的直接删掉,当然为了保险起见,你还是点击去看下如果里面有src目录基本上就可以确认这是跟项目代码相关的了。删掉其他文件和目录之后我们就只剩下:

心情顿时就好了。

我们先来解决library目录中的问题。打开library

回想上面说的studio项目中src/main目录下才是真正的项目代码。因此我们将src/main中的文件全部copy出来,其他的都可以直接删掉了,至于copy出来放在哪里那是你的事,一般我自己的做法是直接放在library目录下,然后删除掉copy文件之外的所有东西。如果你按照我描述的做,那么到这一步library下面应该是这样的:

再回想上面说的main下java目录里面的代码对应的是eclispe项目中的src目录中的代码。因此我们将java目录改名src目录:

这不就是熟悉的eclipse项目么,其实非常简单,至此library目录中的项目结构我们就改造完成了。

按照完全一致的方法我们去改造example目录。

导入eclipse

将修正过的项目(此处为SuperSLiM-master目录)下的所有内容导入到eclipse中:

导入之后生成了library和MainActivity两个project:

library是库,而MainActivity中是demo,通常我喜欢将他们的项目名称改成github上的名称,这里我分别更改为:SuperSLiMLibrary和SuperSLiMDemo

解决错误

从上图中可以看到导入的两个project有错误,其实这些错误基本上是依赖关系导致的。因为SuperSLiMDemo是依赖于SuperSLiMLibrary的,所以我们先从SuperSLiMLibrary中的错误入手。

在这个时候我并不知道这些错误具体产生的原因,所以我需要查看具体的错误文件,打开项目的包,发现以下java文件有红叉:

随便选择一个文件进去看看,这里我就选择第一个好了找到了第一个错误:

LayoutState的recyclerState方法找不到,LayoutState不就是上图中的第三个文件么,进去很多错误,随便截个图

显然是需要导入RecyclerView包了。期望导入RecyclerView之后就不会有任何问题了。

导入后发现大部分错误不见了,只有LayoutState还有错误,原来是因为LayoutState中有这样的代码

1
 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {

这要求编译环境是5.0才行。将sdk换成5.0的,ok了,SuperSLiMLibrary已经没有任何错误了。

看到这里你可能会想,是不是麻烦了点,确实,事实上我并不是上面的每一步都按部就班,我一般先在每个错误文件中扫描以便错误的地方,很快就可以定位到RecyclerView,然后添加依赖,甚至我都不想去扫描错误直接添加RecyclerView的依赖,因为github中已经说了这个项目是RecyclerView实现的。

SuperSLiMLibrary到这里还有最后一步,将它设置成library,不然SuperSLiMDemo在添加lib的时候是找不到他的。

再来看看SuperSLiMDemo中的错误。

在这之前我首先将刚刚的SuperSLiMLibrary添加到依赖中。然后还是有这些错误:

style中的错误是因为没有依赖appcompat,于是先添加了再说,一定要添加最新版本的appcompat(兼容5.0的appcompat),为什么呢,因为在主题代码中有下面这些属性:

1
2
3
4
5
6
7
    <style name="AppTheme.Base" parent="Theme.AppCompat.Light">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>

当你看到colorPrimary属性的时候肯定需要在appcompat中编译的。

同时因为SuperSLiMLibrary都是在5.0上编译的,因此SuperSLiMDemo我也同样在5.0上编译。

然后你会发现我都没去看src中的java代码,就完全没有错误了。

至此SuperSLiM这个项目就完全转换成eclipse版本的项目了。

SuperSLiM不是最好转换的项目,也不是最难转换的项目,只是想告诉你,studio转eclipse是可行的,遇到问题该怎么解决。文中所描述的步骤完全没必要一一照搬,因为根本就没有什么固定的步骤。

另外很多人对使用了appcompat的项目比较排斥,看到使用了appcompat就不研究了,这是完全错误的思想,现在绝大多数开源项目都用了appcompat,而且因为5.0的出现appcompat还将被越来越多的项目使用,你可以看到在android官方文档上面,5.0的很多新特性更多的是介绍如何用appcompat去实现,而不是标准的sdk中的类。

adroid再谈如何将android studio项目转换成eclipse相关推荐

  1. android studio项目改成android.mk编译APP闪退java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

    android9系统android studio项目改成用android.mk编译v7包--APP闪退java.lang.UnsatisfiedLinkError: dalvik.system.Pat ...

  2. 4.Android Studio项目打包成.apk文件(手机安装包)

    文章目录 1.Android打包 2.为什么要给打包的项目签名? 3.签名的主要作用 4.Android Studio打包步骤 1.Android打包 Android程序开发完后,如果要发布在互联网上 ...

  3. Android Studio 项目打包成apk时 Signature Version 的选择

    在第一次进行apk打包时,点击Build->Generate Signed APK,选择好之后按Next后,有一个Signature Versions的选项. 图1 生成APK前的最后一步 在完 ...

  4. 把Eclipse项目转换成Maven项目

    把Maven项目转换成Eclipse项目只要使用Maven的Eclipse插件就能做到 mvn eclipse:eclipse 其实Maven的Eclipse插件也有把Eclipse项目转换成Mave ...

  5. Android Studio(五):修改Android Studio项目包名

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  6. 基于Android平台的记事本软件(Android Studio项目+报告+app文件)

    移动应用开发技术 期末考核报告 题   目:        基于Android平台的记事本软件             学生姓名     学生学号                           ...

  7. Android Studio项目用Git上传至码云(OSChina)

    工具: Git安装(官网下载,默认安装即可). 步骤一: 新建一个Android Studio项目: 步骤二: 申请OSChina账号.登陆并创建新项目 1. 2. 3.点击复制,下面在Android ...

  8. java adt怎么打开项目,如何在Eclipse中打开Android Studio项目?

    慕的地6264312 将Android Studio项目导入Eclipse的分步过程 ...使用向导在eclipse中启动新的Android项目,并从app / build.gradle中填写以下详细 ...

  9. 如何导入别人的android studio项目,解决gradle版本不兼容问题

    如何导入别人的android studio项目,解决gradle版本不兼容问题 参考文章: (1)如何导入别人的android studio项目,解决gradle版本不兼容问题 (2)https:// ...

最新文章

  1. title: postGreSQL 插件 timescaleDB 安装使用 date: 2019-02-14 18:02:23
  2. linux系统怎么清理,linux系统怎么清理废物清理
  3. php-echo原理
  4. Serverless 与容器决战在即?有了弹性伸缩就不一样了
  5. JavaWeb高性能开发(一)
  6. 我将要关注的kaggle比赛
  7. AX2012 学习自动生成编码
  8. python同花顺实时_python同花顺自动交易_基于python的炒股软件
  9. Ember 从0到1
  10. 腾讯2019广告算法大赛总结
  11. hive执行insert overwrite失败,报错 could notbe cleaned up错误
  12. JavasScript 第二天课 课后笔记 2022.3.26
  13. 周末学习总结(LIO标定+kitti数据集的使用+evo工具的使用+开源数据集+ssh的使用)
  14. TMC5160步进电机驱动芯片开发手记
  15. AD18导出BOM清单报错
  16. 感悟爱情的空间说说:总有一个人,一直住在心底,却消失在生活里。
  17. 【luogu P3946 ことりのおやつ】 题解
  18. c 语言单位转换编程,单位转换程序
  19. 初中七年级计算机课教学总结怎么写,初中计算机教学工作总结范文
  20. 『每日AI』王劲离职景驰科技丨无人驾驶领域的领跑者还是叛逃者?

热门文章

  1. 拯救阿拉德大陆 (容斥原理)
  2. SQL学习之mid()函数
  3. [NOIP2010]关押罪犯(题解)
  4. 血氧饱和度测量,pcb加原理图,
  5. 【深度学习基础】卷积是如何计算的
  6. 如何在Windows系统安装node.js(超新)
  7. 电子证照全国互通互认解决方案
  8. 手机上怎么打开md格式的文件_怎么提取pdf页面?职场达人教你一招
  9. 如何更改图片的分辨率
  10. es6面试题总结最全