eclipse项目转Androidstudio项目过程中遇到的一系列问题及解决办法

今天依旧闲着,,,于是决定把在eclipse项目转as项目中的问题记录一下,以供以后方便查阅。。(Ps:今天的单曲循环依旧是郝云的《活着》)

准备:
- 一个eclipse项目。
- android studio (我的版本号是2.0的)
泡杯茶,接下来就可以正式开始转了
1:打开As,进入欢迎界面,选择 Import project(Eclipse ADT,Gradle,etc.)
2:选择你的eclipse项目的主工程所在的路径
- 单一工程直接导入即可。
- 有库工程的需要注意,导入一定要指向主工程,而不是整个项目的目录。指向项目目录是无法进行转换的。
- 如图:
- 这里写图片描述
3:指定目标路径
如图:
这里写图片描述
4:然后一路next下去,.进行构建中。完成后出现了第一个错误:
Error:(1, 1) 错误: 非法字符: ‘\ufeff’
Error:(1, 10) 错误: 需要class, interface或enum
这里写图片描述
这个错误的解决方法就是重新编码:选择UTF-8无Bom格式编码 。详情见我的上一篇博客:
地址:http://blog.csdn.net/qq_25497773/article/details/65444978
上面的解决以后又出了第二个错误:
AAPT err(Facade for 1898549589): libpng error: Not a PNG file
Error:Execution failed for task ‘:zhsq:mergeDebugResources’.
Some file crunching failed, see logs for details
如图:
这里写图片描述
这个错误的原因可能是 UI给了你一个名叫.png的图,但它并不是png,eclipse 不会检查这么仔细,所以不会提示错误。
解决办法是:在你的主工程文件夹里的build.gradle文件里,加上下面这两句:
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
如图:
这里写图片描述
然后点击sync now,重新编译下,会出现第三个错误:

Error:Execution failed for task ‘:zhsq:processDebugManifest’.
Manifest merger failed : Attribute application@icon value=(@drawable/logo) from AndroidManifest.xml:23:9-38
is also present at [zhsq:androidLib:unspecified] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher).
Suggestion: add ‘tools:replace=”android:icon”’ to element at AndroidManifest.xml:20:5-71:19 to override.
如图:
这里写图片描述
这个错误的意思就是你的主工程里面的AndroidManifest里面的内容和库工程里面的AndroidManifest里的application里面的内容重复了。下面是我的主工程下面的AndroidManifest:
这里写图片描述
下面是我的库工程的AndroidManifest:
这里写图片描述

两个文件对比了下,可以看到库文件和主工程的application下面都用了 android:icon=”@drawable/ic_launcher”
解决办法就是去掉库工程application下面的android:icon=”@drawable/ic_launcher”。然后再sync now下我发现我转成功了。。可以运行了。。。可以喝杯茶,放松下了。。
but…我看到我的库工程的build.gradle文件中:
这里写图片描述
这里面的v4包这里有红线。虽然不影响运行,但是我还是想给他去掉。。这里的主要原因是因为,这里v4包的版本号和你的targetSdkVersion版本号不一致导致,我们可以把targetSdkVersion修改成19或者把v4包的版本号换掉。不知道在那篇文章看到过说:这里最好的应该是targetSdkVersioncompileSdkVersion和buildToolsVersion三者保持一致,于是我就把这三个都修改成25.。然后就报错了。。扎心了。。
如图:
这里写图片描述
原来是因为我项目中用到了 apache的httpclient包
Android 6.0版本已经已经基本将Apahce Http Client 移除出SDK。所以会报出找不到。。
Error:(5, 23) 错误: 程序包org.apache.http不存在
Error:(118, 34) 错误: 找不到符号,
解决办法就是:找到sdk下的httpclient包,放在lib下面。下图org.apache.http.legacy.jar 就是httpclient包。
如图:
这里写图片描述

重要:但是这样虽然不报错了,但是很容易和其它jar冲突,造成重复,比如和okhttp。
好的办法是:在android{}中加上 useLibrary’org.apache.http.legacy’ 这样就不会报错了。
Ps:别忘了添加依赖。可以直接在app的build.gradle文件的dependencies节点直接添加一句话:
compile fileTree(dir: ‘libs’, include: [‘*.jar’])
如图:
这里写图片描述

至此。。彻底结束。。。鼓掌,撒花。。。
感谢:http://www.cnblogs.com/jhj117/p/5638212.html这篇文章的作者。跟着这个文章一步步的转的。

最后送上一句昨天刚看到的话:
只要路是对的,就不要害怕它是短暂还是遥远,你终究会到达。加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值