美文网首页开发工具Android开发经验谈技术文
[详解]如何正确地将Eclipse项目转移到Android St

[详解]如何正确地将Eclipse项目转移到Android St

作者: 聪葱忙忘 | 来源:发表于2016-07-23 15:31 被阅读7424次

    鉴于网上无论国内国外对Eclipse项目转移到Android studio的过程大多都说的模棱两可,模糊不清,于是写下这文章让大家少走弯路。(正文是在下面粗体字

    前段时间,打算使用Github上的开源库时发现Github现在遍地都是默认码农们用Android Studio了,下面的使用说明都是像这样:

    dependencies {

    compile'pl.droidsonroids.gif:android-gif-drawable:1.1.+'

    }

    “一句话就可以” ,我真是哔了狗了。

    使用Eclipse的我简直不知所措,只能把代码硬生生搬到Eclipse了。最恶心的来了,万一需要引用到V4,V7这些包的话,那你也只能放弃了。Android这些兼容包已经不兼容Eclipse了。

    于是狠下心来,把Eclipse的项目移到Android Studio上了。

    按网上大部分搜到的“如何把Eclipse项目导入到Android Studio”的内容来看。大致流程是这样的。

    1)把Eclipse项目export成gradle项目。

    2)在Android Studio import刚才那个build.gradle。

    这样导过来真是会出好多问题,我一一列举下:(由于我不推荐这种方法所以解决问题不详说了)

    1)manifest-merger问题,这个问题主要是项目的引用的jar库也同时定义theme和label,icon,在application的节点添加tools:replace=”android:icon, android:theme”,完美解决。

    2)编码问题,有多种情况网上有解决方法。

    3)最大的问题来了,compile github的依赖库失败。

    第三个问题我国内国外都翻了个遍,至今找不到如何解决此问题。有人质疑是网络问题,我用的vpn也不行,后来有人提出是配置问题,我灵机一动新建了个android studio项目,敲下:

    dependencies {

    compile'pl.droidsonroids.gif:android-gif-drawable:1.1.+'

    }

    build成功了。

    显然是我之前那个项目的问题。

    于是我开始了正确把Eclipse项目转移到Android Studio的过程。(正文开始了


    1)在Android Studio新建项目,填写项目主包名跟原来Eclipse的主包名一样。假设主包为com.fu_ckproject。

    2)清单文件:AndroidMainfest.xml这个问题基本上可以把内容全部覆盖过来。

    3)java代码文件:把Eclipse src的包复制过来,这里详细说明一下,程序主包在创建项目的时候已经自动生成了。这里是com.fu_ckproject这个包,那么首先把Eclipse的这个包的java文件copy过去。然后仿照Eclipse的包结构,在Android Studio的java目录下new-package-输入跟Eclipse相同的包名,然后把java文件copy到对应的包里面。注意不要直接从Eclipse copy过去,包名会丢失的。你可以试一下。

    4)布局资源文件:Eclipse res下的drawbale ,layout,drawbale-hdpi,values等,copy到Android Studio的res目录下就好了。

    4)jar库和so库:在Android Studio 切换成“project”模式,展开找到libs目录,按Eclipse下libs的一样把所有jar库和so库复制过来,正常来说jar库文件一般是直接放libs下的,so库是放armeabi等文件下的。这样一般就可以了,因为新建项目后build.gradle会有一句:compile fileTree(dir:'libs',include: ['*.jar']),这个可以加载所有jar,而so文件放armeabi就搞定了。

    5)build一下,运行一下,看有没有错误,如果遇到自定义view的布局“res/...(自定义view类)”这种错误的话,改为“...res-auto”就可以了,android studio会自动识别。还有会有找不到什么theme之类的,一般就是你的compileSdk写的太高了,在build.gradle改为21就好了,如下

    defaultConfig {

    //        applicationId "XXX.XXXXXX"

    applicationId"XXX.XXXXXX"

    minSdkVersion10

    targetSdkVersion21

    versionCode1

    versionName"1.0"

    }

    还有导入V4,V7的包,版本别用最新的,用21的就可以。

    这样的话,就完美地把Eclipse项目变成了Android Studio项目了,compile github 的开源库也成功了没有压力,一个字就是爽!

    感觉说了很多废话,第一次写关于android 开发的文章,大家多多见谅,有什么疑问和建议的可以提出一哈。

    相关文章

      网友评论

      • 40f614d9bb95:确实简单粗暴,但是我发现如果eclipse项目大了,采用这种,太麻烦了!
      • 15bb206a4b2a:舞草 楼主方法简单粗暴啊 折腾半天到吐 我也打算酱紫做啦
      • ced6776f543a:我这个项目是二次开发的 设计到androdi底层源码了 可以移植到as上面么
        e206c3b457f5:我的也是移植的,生成的build.gradle导进去报错更多,最后还是出错
        Error:Execution failed for task ':app:mergeDebugResources'.
        > Error: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException:
        R文件没了,怎么搞?
        聪葱忙忘:@以梦为马_bc89 应该可以吧,按理说eclipse的都可以转移到AS
      • 成者成:按照你所说的复制过去,如果小demo就没问题吧。但是如果ec的项目已经写了很大,新建同样的包名不是累死人吗?
        聪葱忙忘:@成者成 我项目也挺大的,耐心点其实也很快,比瞎折腾快多了...
      • 978d11f01d71:如果ec里面能 正常跑的项目.直接在as里面import eclipse project即可.直接就是as结构了.就2-3分钟的事情.前提是你图片命名规范了[jpg命名为png后缀].清单文件之类的没有错误[重复定义].写了.9后缀但又其实没有制作.string之类的重复定义.这些各种不规范均导致无法编译项目.不过报错会把一切的真相告诉你.耐心一点总能解决.
        聪葱忙忘:@聪葱忙忘 直接新建项目,把包和资源文件拉过去啊。你导过去问题太多了,解决不了的
        王小小胖:@聪葱忙忘 我现在就是因为资源文件报错,找不到原因呢
        聪葱忙忘:@無賴國王 把eclipse项目导过去android studio问题太多了,你说的我都解决了,可是还是跟新建的完整项目有点差距。

      本文标题:[详解]如何正确地将Eclipse项目转移到Android St

      本文链接:https://www.haomeiwen.com/subject/ogcijttx.html