背景:
1. 一直在做.NET的开发,工作之余,学习了一下Android开发,写了一些Demo,当时用的Eclipse开发工具;这两天,刚好项目不是很忙,就打算把之前写的Demo,迁移到Android Studio,结果就悲剧了;
2. 当前我用的Eclipse版本是 Mars.1 Release (4.5.1),Android Studio版本是1.5.1。
主要问题:
1. 下载Android Studio,很耗时;
2. 利用国内最大搜索引擎,找到了相关的Eclipse迁移到Android Studio的文章,按照其中步骤,卡在Build Gradle一个小弹窗那里,然后状态提示Download XXXXX, 就再也没反应了;
3. 最后终于迁移完成,结果代码里面的中文全是乱码,各种错误,内心阴影面积很大。
4. 绝望中Google搜索找到了另一种简单快捷的迁移方法,但是运行时的apk中文仍旧是乱码。
迁移步骤及问题处理:
1. 下载android Studio及安装:
由于裆国网络限制,下载需要FQ,大家可以买个VPN去下载,我自己用的是云梯VPN,感觉还不错。【PS:从这个链接点击去购买的话,可以优惠10块钱】
下载地址:Android Developers。安装过程基本没什么,除了下图步骤:
这里关于选择Standard和Custom模式,需要说明一下:如果你之前有安装过Android SDK,那么选择Custom模式,如果没有安装,选择Standard,然后点击Finish。
2. Eclipse迁移到android Studio。
关于项目的迁移,网上有很多人都有博客,大体上就是两种方法:
a. 先导出Gradle,然后导入Android Studio。【验证失败】
操作步骤:打开Eclipse,点击File---->Export----->Android------->Generate Gradle build files, 点击Next,然后继续点击Next【此处省略一千字】,相关博客,如: eclipse项目迁移到android studio(图文最新版)、【Android Studio(一)】从Eclipse迁移到Android Studio等。
验证结果:我尝试了很久,出现了上面提到的问题2,等了一两个小时,迁入完成,然后出现了问题3,最后网上查了很多资料,都没有解决我的问题。【PS:可能是我刚接触Android的原因,这只是我这个小菜鸟碰到的情况,大家有什么不同建议可以告诉我】
b. 直接导入原来Eclipse中Project的方法。【验证可用】
步骤:
<一>. 打开Android Studio,点击Import Project(Eclipse ADT,Gradle,etc.)
<二> 选择你的Eclipse的WorkSpace下面的一个Project,并选中Project下面的AndroidManifest.xml,点击OK。
<三>选择你转化Project后保存到的目录,然后点击Next;
<四>如下图,三个全部勾选,点击Finish,然后很快就转化OK了。
这时候就会出现上面说的那个乱码问题了,代码编译是OK的,但是中文在代码中是乱码,运行后apk在设备上也是乱码。
乱码解决办法:
<a> 如果代码或者注释里面中文乱码,点击File---->Settings---->Editor---->File Encoding,把IDE Econding,Project Encoding全部改成GBK编码;
<b> 如果运行的apk显示乱码,在module的bulid.gradle中加入: compileOptions.encoding = ‘gbk’ ,如下:
android { compileSdkVersion 23 buildToolsVersion "23.0.3" compileOptions.encoding = ‘gbk‘ defaultConfig { applicationId "com.example.myfirstapp" minSdkVersion 11 targetSdkVersion 21 }
参考博客:Android Studio 导入 Eclipse 的代码后,注释和运行时中文显示乱码
<c> 关闭Android Studio,重新打开,就正常了。
最后,顺便说一句Android Studio和Eclipse的一些差异:
1. Android Studio每次只打开一个Project,而Eclipse是打开了所有的Project。
2. Android Studio的Project相当于Eclipse的WorkSpace,即是Android Studio有多个WorkSpace。
3. Android Studio的Module相当于Eclipse的Project。
另,本人只是一个业余Android学习者,如有不正确的地方,希望并欢迎大家能给予指正。