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节点中加入以下代码:
问题四(程序包org.apache.http不存在)
这里compileSdkVersion设的是23,所以会有这个报错,因为Android 6.0默认将Apahce Http Client移除了,再想用到它我们就需要在报错Module的build.gradle的android节点中加入以下代码:
问题五(transformResourcesWithMergeJavaResForDebug)
这个问题貌似有几种不同情况,有人说这样,在报错Module的build.gradle的android节点中加入:
或者这样,在报错Module的build.gradle的android节点中的defaultConfig节点中加入(我就是用这个方法解决了报错问题):
目前就这些,还有一些待解决的,包括导入后能运行但是编译速度非常慢,运行速度也很慢,会先白屏几秒再进入App,解决了再写进来。
今天花了一天时间把公司项目从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,解决了再写进来。
相关文章推荐
- Android之 Eclipse NDK编译——常见错误的解决方法记录
- JavaFx使用指南
- Java RandomAccessFile用法
- Java中用内存映射处理大文件
- JAVA随机:当前年月日时分秒+五位随机数
- java异常记录集
- Java中关于字符串转成毫秒数以及毫秒数转化成字符串的总结
- java.io.IOException: No FileSystem for scheme: hdfs
- Spring 攻略第002讲
- java实现ftp文件操作的方式有哪些?
- 捷易拍与springMVC系统结合
- 一台电脑安装两个不同版本JDK
- Spring官方文档学习(3.1)
- java mail实现Email的发送,完整代码
- spring参数类型异常输出(二), SpringMvc参数类型转换错误输出(二)
- 【Java】File.createTempFile创建临时文件
- Java虚拟机运行时数据区
- Java 并发包中的读写锁及其实现分析
- Java进阶之自动拆箱与自动装箱
- springMVC第一课--配置文件