从Eclipse迁入到Android Studio遇到的问题

最近由于新加了jar包,导致调用的方法数超过了65536个,导致dex无法生成,于是将原来在Eclipse的工程迁入到Android Studio。因为Google官方推荐,支持分包,功能十分强大,包括智能提示,能理解上下文做出正确的提示和纠错,所以就迁移了。按官方的指导方法,将工程从Eclipse迁移到Android Studio遇到了一些困难,也许每个人的问题不尽一样,甚至完全没问题,以下只是个人遇到的问题:

(1)UTF-8无法识别的字符:由于工程是GBK编码,在导入到Android Studio(由于麻烦,简称AS)后,即使将AS的工程编码改为GBK还是报UTF-8无法识别的字符,经多次配置无果,无奈从版本库重新检出新工程,使用UTFCastExpress工具,将工程的java文件全部转换为UTF-8编码,然后再导入到AS,然后将AS的默认编码和工程编码全部改为UTF-8。补充:AS编码设置File->Settings->FileEncodings。UTF-8转码工具地址

(2)非法字符: \65279:在用UTFCastExpress工具的时候,由于不知道BOM是干什么,而且是默认勾选,结果在AS中报出"非法字符: \65279 ”,以为又是GBK转UTF-8的问题,重新用工具改编码几次无果。即使用记事本重新保存再粘贴也无果。然后查看java报“非法字符: \65279 ”错误的解决方法,于是在将GBK转UTF-8的时候,去掉了BOM的选项,所谓的UTF-8的标记,不可打印的字符,重新导入工程,错误消失。

(3)编码问题解决后,有些9.png图报错,也许是AS强大吧,ADT没检查出来。不过解决方法很简单,根据给出的提示重新编辑图片就是了。

(4)Error Code:2
Output:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: Cannot merge new index 65688 into a non-jumbo instruction!
at com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:109)
at com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:26)
at com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:72)
at com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)
at com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)
at com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:49)
at com.android.dx.merge.DexMerger.transformCode(DexMerger.java:842)
at com.android.dx.merge.DexMerger.transformMethods(DexMerger.java:813)
at com.android.dx.merge.DexMerger.transformClassData(DexMerger.java:786)
at com.android.dx.merge.DexMerger.transformClassDef(DexMerger.java:682)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:542)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值