您的位置:首页 > 编程语言 > Java开发

Android Studio导入Eclipse项目的一系列问题解决

2016-06-06 18:38 387 查看
场景

今天花了一天时间把公司项目从Eclipse迁移到Android Studio,算是一个中型的App吧,现在将今天遇到的一系列问题以及解决过程记录下。

问题一(导入项目)

这个简单,File–>Import Project–>选择路径–>按照提示一步步直到Finish。我这里用的是刚更新的Android Studio 2.1.1,只需要导入App主工程,它会自动帮我生成依赖的各个Module,非常方便,但是…编译时问题就多了!

问题二(重复无效的数据)

因为在之前Eclipse项目中,有不同的资源文件(例如:color、string)中包含了相同名字的资源键值对,或者在AndroidManifest.xml中包含了一些无效的组件节点等,这些都要一一删除。

问题三(libpng error:Not a PNG file)

在网上找了一些资料都说,这是直接将jpg后缀改为png产生的问题,有以下两种解决方法:

1、项目小的话,将res中所有png文件一一打开,看下该文件右上角标的是PNG还是JPEG,如果是后者就需要先将其改为jpg再用转换工具转成png了。

2、项目大而且不想麻烦的话,在报错Module的build.gradle的android节点中加入以下代码:

aaptOptions{
//禁止AAPT优化png文件
cruncherEnabled = false
}


问题四(程序包org.apache.http不存在)

这里compileSdkVersion设的是23,所以会有这个报错,因为Android 6.0默认将Apahce Http Client移除了,再想用到它我们就需要在报错Module的build.gradle的android节点中加入以下代码:

//使用Apahce Http Client
useLibrary 'org.apache.http.legacy'


问题五(transformResourcesWithMergeJavaResForDebug)

这个问题貌似有几种不同情况,有人说这样,在报错Module的build.gradle的android节点中加入:

packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
}


或者这样,在报错Module的build.gradle的android节点中的defaultConfig节点中加入(我就是用这个方法解决了报错问题)

//也可以解决应用总方法数限制的问题(method ID not in [0, 0xffff]: 65536)
multiDexEnabled true


目前就这些,还有一些待解决的,包括导入后能运行但是编译速度非常慢,运行速度也很慢,会先白屏几秒再进入App,解决了再写进来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: