将studio项目 转换为eclipse项目

总会有些奇怪的事情,比如,有的人就有将studio项目 转换为eclipse项目的需求

首先,不要因为编译原因而放弃。studio项目是完全可以转换成eclipse的

本站的开源代码板块有很多项目都是android studio开发的,很多同学以为必须要先学会studio,才能编译这些源代码,于是花了很长时间学studio,结果发现还是不会。其实任何studio项目都是可以转换成eclipse的,eclipse目前的编译能力比studio只会多不会少。只要你熟练了,一个中等复杂的studio项目转成eclipse也只是分分钟的事情。 在这里我要强调的是开源代码板块的studio项目95%以上都是我亲自编译成功并且运行了的,而剩下我没有验证的极少部分往往是因为该项目在github上已经得到非常多的star,而编译起来又异常复杂,但这是极少数的情况。

转换方法

下面来谈谈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'}

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

首先要讲的就是项目结构的转换,这一点很基础,我已经在http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0918/1692.html一文中讲解过。

但是那篇文章没有结合具体的例子来说明,因此对于新手来讲,还是很难开头。其实除了项目的结构之外,项目的依赖关系其实也是一个难点:对于一个studio项目我们如何知道他依赖了哪些东西呢?

一个比较典型的实例

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

下面我以https://github.com/TonicArtos/SuperSLiM 为例讲解如何将它转换成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中的类。

时间: 2024-12-22 19:00:27

将studio项目 转换为eclipse项目的相关文章

android studio-Android studio 怎样导入eclipse项目

问题描述 Android studio 怎样导入eclipse项目 提示这个,怎么解决! 解决方案 原文地址:http://www.ithao123.cn/content-2382286.html 现在,越来越多的开源项目都是用android studio来开发的,所以源代码都与eclipse有所不同. 下面是将android studio项目导入eclipse的一般步骤: 先解压项目: ? 解压后,会发现有很多ecl......答案就在这里:在Eclipse中导入android studio项

jar-web项目转换为maven项目,项目各种报错的问题

问题描述 web项目转换为maven项目,项目各种报错的问题 有一个比较大的web项目,原本是不支持maven的.jar包什么的 都是手动打,现在需要改成 maven来管理的.我通过右键项目configure里面的convert to Maven project之后,项目报错. 难道是我漏掉了什么地方?还是说不能直接点击convert to Maven project?请大神 错误类似于这种.提示全都是 XXX cannot be resolved to a type 解决方案 这个错误,,就是

将 MRC 项目转换为 ARC 项目

其实很简单,直接使用系统工具转换即可,以下是步骤: 1. 你之前的项目是MRC的   2. 里面有 release, dealloc 等.   3. 开始转化   4. 点击save转化完后,记得把工程重新设置成arc的.          

面向Visual Studio用户的Eclipse简介

所有集成开发环境 (IDE) 都十分相似,因为它们都是为同一目的而构建的,但是它们也有差异.这些差异中有些可以归因于应用域不同,但是其余差异则因 IDE 设计而产生. 很明显,Microsoft Visual Studio 与 Eclipse 是不同的:Java 编程语言不同于 C/C++/.NET,并且 Java 曾经是 Eclipse 所支持的第一种语言.两者不同还因为 Eclipse 旨在成为 "可以实现任何功能而不是实现具体某项功能(everything and nothing in p

把已有的项目变成maven项目要怎样做,没做过的兄弟请别搅和

问题描述 把已有的项目变成maven项目要怎样做,没做过的兄弟请别搅和 我目前有一个项目要发布到GitHub上,https://github.com/hcqt/dazzle 用原始的classpath文件内写jar包路径的办法引用jar包,我不希望把这么一个文件发布到网上, 由于大家发布java项目通常是附带pom.xml文件来表明引用的jar包,我希望我发布的项目采用这种方式发布jar包引用, 那么我如何把一个普通的java项目转换成maven? 解决方案 建一个maven项目,把你以前用到的

Android studio怎么使用eclipse的第三方类库

问题描述 Android studio怎么使用eclipse的第三方类库 最近在做一个项目,有个功能需要轮播控件,但是我down下来的是eclipse项目结构的,而我用的是Android studio,敢问如何让as添加ec的类库呢,我把代码copy到我的项目下还是会报错,不晓得啥,或者教我怎么讲ec项目导成jar包也行,拜谢 解决方案 [Android]Android Studio 使用第三方类库 解决方案二: studio新建module,然后选择第二排的第二个Import Eclipse

eclipse项目导入android studio后运行按钮是灰色的,无法运行起来???

问题描述 eclipse项目导入android studio后运行按钮是灰色的,无法运行起来??? 5C 按照网上的方法把eclipse-中的项目导入-后运行按钮是灰色的-不知道怎么把-运行起来-是不是还有什么错误× 解决方案 关闭eclipse重启一下看看或者将项目关闭重启一下 解决方案二: 有可能不是完整的项目结构, 解决方案三: 推荐你看看这个.http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0110/2294.html

将Java Studio Creator 2的项目转换为NetBeans IDE 6.0项目

在你使用本教程之前, 你需要在你的系统上安装 NetBeans IDE 6.0 的 Web 功能模块 (Web & Java EE 或者 Full install) , 在 NetBeans IDE 6.0 下载页面 可以下载. 使自己熟悉IDE 的基本部分.(注意, 比如有些窗口在 NetBeans 中 和Java Studio Creator 中的位置是不同的.) 在此教程中的所有 步骤都是基于一个使用了 JSF 1.1 和 J2EE 1.4 的 Java Studio Creator 项目

编码-android studio导入eclipse项目

问题描述 android studio导入eclipse项目 android studio导入eclipse项目后,出现了乱码,原先是GBK的,在studio中我也把编码改成了GBK 代码里的中文也不乱码了,可是问题来了: 重新编译后,还是提示乱码,下面是截图 解决方案 Android Studio 导入 Eclipse 的代码后,运行时中文显示乱码 Android Studio 1.2 编译出来在手机上运行时显示乱码 解决方案二: android studio 导入eclipse项目乱码处理