eclipse到Android Studio的项目迁移

本文记录了从Eclipse迁移到Android Studio的过程中遇到的问题及相应解决办法,包括乱码处理、重复图片问题、多DEX文件构建、内存溢出错误和多 Dex 类打包错误等。通过实施编码统一、移除重复资源、优化代码结构和配置build.gradle文件,最终实现了应用的顺利运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直以来,公司开发都是用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终于能运行起来了...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值