android studio 项目转换成eclipse工程

Android Studio逆向工程——向Eclipse迁移 背景:近期接手一个老项目。用Eclipse构建。由于某中原因,一直沿用的Eclipse。然后需要添加新功能,新功能是一个支付项目,给的代码是Android Studio构建。为了把项目导入Eclipse中,费时费力,终于成功。这里把过程分享一下。 首先拿到了项目Demo。导入AS中。 demo.bmp 导入工程后看到例子很简单,就两个类。 project.bmp 阅读详情

本站的开源代码板块有很多项目都是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 {
}
 
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项目。

更改项目结构

首先下载然后解压:

QQ图片20150110173851.png

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

QQ图片20150110174358.png

心情顿时就好了。

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

QQ图片20150110174530.png

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

QQ图片20150110175203.png

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

QQ图片20150110175559.png

这不就是熟悉的eclipse项目么,其实非常简单,本来我是不想写那么多的,但是有些人就是不会。至此library目录中的项目结构我们就改造完成了。

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

导入eclipse

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

QQ图片20150110180018.jpg

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

QQ图片20150110235355.jpg

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

解决错误

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

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

QQ图片20150111000222.png


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

QQ图片20150111000437.png

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

QQ图片20150111000638.png

显然是需要导入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的时候是找不到他的。

QQ图片20150111001359.png


再来看看SuperSLiMDemo中的错误。

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

QQ图片20150111001956.png

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中的类。

android studio如何导入和运行调试unity导出的项目,并查看log日志?(或者说:android studio如何导入eclipse项目?) 在开发unity过程中,需要真机调试,但是unity和手机连接,控制台输出手机的debug比较麻烦,那么手机运行unity项目的时候有什么办法查看debug信息呢? 在这里我提供两种较简单的方法,得到debug输出。 1,如果只是需要了解少部分信息,直接在uniyt项目中增加ui的text控件,将debug信息输出到text上,可以在项目运行的时候直接在手机上看到debug信息。 2,如果想 阅读详情

相关推荐

Eclipse工程迁移到Android Studio问题汇总

本文介绍了将Eclipse项目转换为Gradle项目的两种方法。方法一通过Eclipse导出Gradle文件,需注意版本匹配和工程选择;方法二直接生成AS工程,需注意导入路径。针对转换中可能出现的NDK报错问题,给出了设置gradle.properties的解决方案。对于layoutlib.jar导入问题,提出了在module下创建mylib目录的特殊处理方式。最后提供了解决APK签名冲突的配置方法,包括在build.gradle中添加签名配置。

学无止境 2558

如何将android studio项目转换成eclipse

原文链接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0110/2294.html 首先,不要因为编译原因而放弃。studio项目是完全可以转换成eclipse的 本站的开源代码板块有很多项目都是android studio开发的,很多同学以为必须要先学会studio,才能编译这些源代码,于是花了很长

anjie专栏 2382

AndroidStudio项目转换为Eclipse项目

一个把AndroidStudio项目轻松转换为Eclipse项目的脚本文件。 使用环境:linux,Unix,macos 使用方法: 把文件Gradle2Eclipse.sh拷贝到你要转换的项目的根目录下,然后通过终端(命令行)下执行: sh Gradle2Eclipse.sh即可。 新项目存放于目录下的NewEclipse文件夹下。

AndroidStudio的代码转至eclipse

个人还是喜欢eclipse,奈何现在 Studio 写的代码越来越多了, eclipese导至android studio正常 android studio导至eclipese 1.在eclipse 上新建一个空的项目; 2.点击android studio 中的android 视图,         a.替换as 中的AndroidManifest.xml -> ecl

重楼的博客 457

802.11 NDP Sounding

NDP Sounding1.NDP原理2.NDP 过程3.帧结构3.1 NDPA结构3.2 CBF帧 1.NDP原理 802.11n标准提供的波束成形技术,可以通过预先补偿发射天线的相位,让两条波束进行叠加以实现最好的效果 显式波束成形需要终端反馈信道信息: AP向STA发送探测数据(NDP: null data packet sounding) STA向AP反馈信道信息(Compressed beamforming) AP根据STA的反馈或自行计算的权重信息进行波束成形 2.NDP 过程 802.

weixin_45799954的博客 8262

【学习体会】Lighttools8.4.0:软件基本使用+光度学基本概念+系统初始设置

关于Lighttools8.4.0软件的安装教程,详见我的另一篇博文:【软件安装】win10下Lighttools8.4.0(64)光学系统建模软件的安装教程 在本文中,我们将学习到,光度学的基本概念、系统初始设置、物体模型坐标的使用方法、简单光学系统实例、系统浏览器的作用和内容、设置虚拟相机并渲染视图中的图像、仿真结果3D显示等。 如果有其他感兴趣的内容但是我又没有写的,欢迎在评论区留言! 光度学的基本概念 软件的基本介绍 参考博文:https://www.docin.c...

LeonJin的博客 2万+

AndroidStudio项目转换成Eclipse环境

AndroidStudio项目转换成Eclipse环境

yizhong123的专栏 6411

【Linux】实际项目应该如何完成?--安防监控系统项目的总结

到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...

修成真的博客 6729

android studio与eclipse之间项目切换

一、android studio导入eclipse 手工改!! 1.在eclipse 上新建一个空的项目; 2.点击android studio 中的android 视图, a.替换as 中的AndroidManifest.xml -> eclipse 中的AndroidManifest.xml; b.替换as 中java 目录下源文件 -> eclip...

P876643136的博客 3345

ESP32-CAM实战:从零构建高精度QR二维码识别系统

本文详细介绍了如何使用ESP32-CAM构建高精度QR二维码识别系统,涵盖硬件配置、开发环境搭建、二维码识别库选择与优化、完整系统实现及实战问题排查。通过优化识别算法和电源管理,系统可实现快速、稳定的二维码识别,适用于物联网设备绑定等场景。

weixin_42524703的博客 433

C#串口通信从入门到精通(1)——硬件接线

RS-232接口一般都是9针的,有公母头(针头和孔头),为了便有理解以下都称为针头和孔头,针头就是露出来的针,孔头就是9个孔,总共使用3条线进行通信,一条用于发送,一条用于接收,另外一根是GND地线,由于线路的功能是永久性的,设置连接时,必须确保一个节点的发送线与另一个节点的接收线相连,反之亦然,RxD(PC的接收线)连接到TxD(传感器电子设备的发送线),TxD(PC的发送线)连接到RxD(传感器电子设备的发送线)。两条线路的电平都是相对于GND的。因此,GND也必须连接,但不能将GND与屏蔽连接。

qq_34059233的博客 1万+

Android Studio项目转为Eclipse开发以后遇到的问题

Android SDK结构不同导致报错 Android Studio和Eclipse不能共用一套Android SDK,因为使用SDK的结构不一样。把Android Studio项目转为eclipse开发,首先在eclipse新建一个Android项目,然后将Java逻辑代码和XML布局文件复制到新项目里面即可。不过如果eclipse里面配置的Android SDK还...

微笑涛声 1793

Lumerical 教程目录,说明及个人感悟(共计138篇,持续更新中)

Lumerical---教程说明及个人感悟

u011699626的博客 1万+

手动将eclipse工程转换成android studio工程 - 了解新建一个gradle项目时Gradle帮你做了哪些工作...

eclipse => android studio 思路 1 在项目根目录添加 gradle2 新建 module 代替原来的project,重新指定目录结构使其指向根目录下的资源路径 1 初始化gradle目录 初始化gradle $ cd PROJECT_ROOT $ gradle init $ git st ?? .gradl...

weixin_34391445的博客 186

KUKA机器人在自动运行时,动作不流畅,每个点位都有停顿的解决办法

KUKA机器人在自动运行时,动作不流畅,每个点位都有停顿的解决办法

Robot_PLC_HMI_Automation 4579

【华为OD技术面试手撕真题】25、验证IP地址 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)

验证IP地址 华为od机试真题,华为OD技术二面,华为od机考,华为od手撕真题,华为od技术二面,华为od机试,华为OD机试的高频手撕代码题,华为od八股文

KJ.JK 4043

Android Studio 导入Eclipse工程

eclipse:workspace对应多个project;而android studio是project对应多个module;故,在android studio中的工程project实际上是eclipse的工作空间workspace。 不一定成功的方法:直接打开AS,导入单个无依赖的独立Eclipse工程,若SDK版本匹配则可能成功。 官方推荐的方法:使用adt将工程转换成gradle,...

weixin_30887919的博客 99

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android Studio之导入Eclipse项目

Android Studio导入Eclipse项目,解决导入gradle不匹配等问题

海阔天空的博客 2302

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

将项目从Eclipse转到Android Studio

从Eclipse迁移: 1.从svn上拉取项目:File -&gt; new -&gt; other -&gt; SVN -&gt;从SVN检出项目… 如果报 refused by server问题,关掉代理,重启电脑,打开浏览器能上网就好了 如果有缺少的文件资源,添加进去 2.点击主工程,对它右键选择Export并选择Android下的Generate Gradle Bu...

ckwccc的博客 571

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android studio 项目 转换成eclipse

android studio 项目 转换成eclipse

Daemon_Liu 1366

Android 图解向 Android Studio 中导入 Eclipse 工程的步骤

转载请注明本文出自 clevergump 的博客:http://blog.youkuaiyun.com/clevergump/article/details/50931664, 谢谢!注意: 1. 如无特殊说明, 本文中提到的 AS 都是指 Android Studio 这款 IDE. 2. 如无特殊说明, 本文中提到的 “library工程” 和 “库工程” 是相同的概念. 一. 前言如今用 AS 新

clevergump的专栏 7556

如何优雅的把Eclipse项目导入到Android Studio中

方法一:把整个Eclipse工程当作AS的根Module(同时也是唯一的子Module) 原有的Eclipse工程项目文件结构是这样的。如果要迁移后的项目兼容Eclipse,那只能删除gen文件夹。如果迁移后不再有在Eclipse中编辑的需求,可以继续删除.classpath,.project文件。 用AS新建一个工程(用于提取配置文件),复制以下文

Ernest的优快云博客 1万+

【Android Studio】eclipse项目导入Android Studio

1 Gradle方式导入步骤一: 新建eclipse项目接着生成gradle文件,这也是和第1种方法最大的不同 File->Export->Android->General gradel build file接着选择Hello1,然后一路next就ok了,生成完之后如下图步骤二: 下面进入Android Studio 图上图所示,点击第5个,我用的是目前最新版本的Android Studio

人生就像是一场编程 1347
上一篇: Android使用ViewPager实现左右循环滑动及轮播效果
下一篇: 拍照,系统选择照片
RootK
博客等级 码龄12年 7粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值