eclipse到Android Studio的项目迁移

一直以来,公司开发都是用eclipse,但是随着我们应用不断成长,项目结构越来越庞大,项目间依赖关系变得很复杂,用eclipse管理显得非常吃力,经常一个同事更改依赖项目之后,别人在更新,都会出现问题,因为这些事情浪费很多时间。最终决定迁移到Android Studio。但是迁移的过程中还是遇到了很多问题,通过这篇博客,把迁移过程中遇到的问题,以及每个问题的解决方案,记录一下,也希望能帮助到有同样需求的同学。

这里就不详细介绍从eclipse导入到Android Studio的过程了。

1.乱码

用eclipse开发时编码用的是GBK,而android studio中使用的是UTF-8,所以在build的时候,项目中的温度符号,以及一些中文注释就会出现乱码。

解决方案

统一编码,我们把编码都改成UTF-8. Android studio通过如下方式改项目和文件的编码:

File -> Other Settings -> Default Settings -> 搜索File Encodings ->改三个地方的编码(IDE Encoding,Project Encoding,Default encoding for properties files)

2. 重复图片

我们有一个Library是从主项目中抽取出来的,抽取的过程中很多图片从主项目中copy出来之后,忘记删除了,导入到Android studio之后,build的过程就会出错,不过错误信息中有提示重复的文件,我们只需要根据提示把不用的图片删掉。

3. Unable to execute dex: method ID not in [0, 0xffff]: 65536

对于这个问题,google官方给出了解释,http://developer.android.com/tools/building/multidex.html,大概意思就是:当你的应用以及应用依赖的library达到一定的Size之后,在build的时候就会提示这个错误,说明你的应用已经达到了Android app构建架构的限制大小。android虚拟机限制了每一个DEX文件能够引用的method的个数为65536, 它包括Android Framework,Library,以及自己项目中的methods总和。

解决方案

给我们的应用生成多个DEX文件,需要在build.gradle,文件中配置:

android {
   defaultConfig {
      ...
      multiDexEnabled = true
   }
}

另外,还要使用MultiDexApplication类,如果你的应用中已经有Application类,需要让它继承自MultiDexApplication,再实现attachBaseContext方法,代码如下:

protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}

4. OutOfMemoryError: GC overhead limit exceeded

在build.gradle文件中做如下配置:

android {
...
dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }
}

5. java.util.zip.ZipException: duplicate entry during packageAllDebugClassesForMultiDex

报错信息如下:

Error:Execution failed for task ':ezweather_original:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/annotation/ColorRes.class

解决方案,在build.gradle中添加如下配置:

configurations { all*.exclude group: 'com.android.support', module: 'support-v4' }

这时候app终于能运行起来了...

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 21:37:31

eclipse到Android Studio的项目迁移的相关文章

Eclipse导入Android Studio的项目

感谢各位大神,已经归纳好了:http://www.360doc.com/content/15/0323/13/11800748_457387176.shtml.在此,我只是根据个人理解,将内容再整理一下,仅供参考.声明:如果该文侵犯了你的著作,抱歉,请及时通知,我会马上删除. 下面开始谈谈将Android Studio项目导入到eclipse的具体操作: 其实最重要的一点是了解两编译环境生成目录的相似之处:Android Studio项目中src/main目录下的文件才是真正的项目代码,main

Android Studio下项目构建的Gradle配置及打包应用变体

Gradle简介 ??Gradle是一个自动化构建工具,采用Groovy的Domain Specific Language(领域特定语言)来描述和控制构建逻辑.具有语法简洁.可读性强.配置灵活等特点.基于Intellij IDEA社区版本开发的Android Studio天生支持Gradle构建程序.Groovy是一种基于JVM的敏捷开发语言,结合了Phthon.Ruby和Smalltalk的许多强大特性.同时,Groovy代码既能够与java代码很好地结合,也能够用于扩展现有的代码. Grad

Android Studio 设置项目Module编码,解决Android Studio项目执行时乱码问题

Android Studio的项目设置逻辑与Eclipse有非常大的差别.运行的操作为File->Setting->File Encodings然后来进行设置,如图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="600" height="40

Android Studio导入项目的几种方法

本篇教程中使用到的Android Studio版本为1.0, Eclipse ADT版本23.0.4.请尝试更新到该版本. Android Studio默认使用 Gradle 构建项目, Eclipse 默认使用Ant构建项目.建议Android Studio导入项目时,使用 Gradle 构建项目. 导入 Eclipse 项目 本例中,使用到的 Eclipse 项目结构如图: e-demo 为主项目, appcompat_v7 为 library 项目. 导入 Generate Gradle

Android Studio创建项目

创建项目 首先,先指出Android Studio中的两个概念. Project 和 Module .在Android Studio中, Project 的真实含义是工作空间, Module 为一个具体的项目. 在 Eclipse 中,我们可以同时对多个 Eclipse 的 Project 进行同时编辑,这些 Project 在同一个 workspace 之中.在Android Studio中,我们可以同时对多个Android Studio的 Module 进行同时编辑,这些 Module 在同

Eclipse开发Android,Java项目快捷键技巧

工欲善其事必先利其器,在IDE中开发软件很重要的一个步骤就是快捷键的设置,设置了自己最熟悉的快捷键,开发效率将会大大提升.该篇帖子说说我的Eclipse快捷键设置.我常用的Eclipse快捷键如下: (1)Ctrl+C    Ctrl+V:这个不说了,你懂的:(Eclipse自带) (2)Ctrl+S :快速保存当前文件:(Eclipse自带) (3)Ctrl+D:删除光标所在当前行:(Eclipse自带) (4)Ctrl+F:快速格式化代码:(自己设置,个人因为格式化代码Ctrl+Shift+

Android Studio导入项目

原文:http://ask.android-studio.org/?/article/21 本篇教程中使用到的Android Studio版本为1.0, Eclipse ADT版本23.0.4.请尝试更新到该版本. Android Studio默认使用 Gradle 构建项目, Eclipse 默认使用Ant构建项目.建议Android Studio导入项目时,使用Gradle 构建项目. 导入 Eclipse 项目 本例中,使用到的 Eclipse 项目结构如图: e-demo 为主项目, a

Android学习之路(一) Android Studio创建项目

最近一直想学习Android等的开发,正好现在时间也比较充裕,因此决定从这里起步我的移动端的开发.虽然现在基于Html5的web app好像比较流行,但我还是想从原生的app开发开始学习.以后我都基于Android Studio 进行我的学习.下面开始构建我的第一个Android项目. 创建项目 首先,先指出Android Studio中的两个概念. Project 和 Module .在Android Studio中, Project 的真实含义是工作空间, Module 为一个具体的项目.在

Eclipse 和 Android Studio 并存

当项目转到 AS后,发现AS虽然有很多优势,比如语言编辑,自动补全提示,等等, 但是还感觉没有Eclipse好用,想要在Eclipse下编辑项目,怎么办? 可以使用 Ubuntu的 文件引用功能,  ln -s新建一个空白的Eclipse工程,分别引用以下文件:AndroidManifest.xml libs res 下面是我的引用路径: lrwxrwxrwx 1 zhanglin zhanglin 83 2月 3 15:38 AndroidManifest.xml -> /home/zhang