将公司的主要项目从eclipse迁移到android studio for mac环境(1)
上星期,我决定要解决这个问题。理由如下:
3个月之前,我已经投入一段时间要做好这个迁移工作,直到最后,我发现能够安装了,但是运行不了,这个过程也看不到bugly上传,在找不到原因的情况下,我放弃了。
后来,我在svn 下载代码后,在esclipse中运行时,发现这个app可以安装,但是不能运行,和之前我遇到的问题一样。后来,我了解到了是.so文件的缺失。然后联想到之前的迁移问题应该也是这个原因,所以我也开始下定决心,去解决这个问题。
接下来,我整理一下我遇到的问题,和我如何解决:
1.从svn 下载代码 vs 自己从windows copy 代码到macbook上
我首先采取对方法是后者,后来我还是决定要使用svn 下载代码,为了以后更好地更新和提交。
(1)我决定使用svnx 来解决这个问题。
首先,我混淆了Repositories 和 working copies,然后有一点时间纠结于为什么working copies为什么在加载的地址总是少了一个“\”字母,最后,查了百度,都没有找到原因。
后来,才发现其实我需要打开repositories来作好设置。
(2)下载以后,发现需要注意的是import 后的结果,发现svnx设置下载的文件位置 和 import生成的文件位置不一样,两者的架构也有很大区别。
这个时候需要考虑的是以后要通过svnx上传下载代码,如何去同步?
注:之前,我没有理解清楚到底哪里提示错误? 到底是event log?Gradle Console ?后来可以确定的是,需要重点关注Gradle Console ,里面可以提示到底哪个文件是有问题的。然后针对性地
2.一开始运行的时候,发现图片的问题
(1)首先是点九图。点九图的错误基本都在显示图片的地方所显示的红点可以看到。这个可以交给美工去处理。
(2)然后是png的问题。该问题会提示”libpng error: Not a PNG file“,有些是warning,有些是error错误。然后,我就百度,查找到使用“Image Magick”来解决。
(我在安装Image Magick的时候,有些步骤本来是二选一可以跳过,但是我顺着看,忽略了这个是可选择的。)
下载安装好以后,我就先尝试一个文件夹中的png文件是否可以转换,然后再逐个文件夹尝试,由于 在终端中,使用的是类似于
java -jar /Users/gengen/Documents/imagestriptool.jar /Users/gengen/Documents/ICT_android/new_IMSChat/iMSChat/src/main/res/drawable-hdpi /Users/gengen/Documents/ICT_android/new_IMSChat/iMSChat/src/main/res/drawable-hdpi
上面黄色表示的是初始文件夹,下面粉红色表示的是目标文件夹
这两个文件位置都是可以是同一个的
(3)使用
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
忽略其中的png提示错误。
3.共用jar 包的问题
公司的项目是由四个module组成的,其中两个module是公用同一个jar包的。这时候,需要把这jar包提取出来,生成一个新的module。然后在需要使用这个jar包的项目下单击右键,在module setting 去设置引用这个新的module。
4.android studio 的设置问题
接下来,会遇到提示需要在 uses-sdk 添加
tools:overrideLibrary="com.xxx.xxx.xxx",和application中在android:icon后面添加tools:replace=“”。
这个在version control 有提示。
5.gradle build的问题
(1)由于需要优化Dex,而由于处理工具DexOpt对id数目的限制,导致其处理的数目不能超过65536个,因此在Android开发中,需要使用到MultiDex来解决这个问题,MultiDex可以配合Android Studio实现一个apk包含多个dex的功能
因此在android studio 的build.gradule 的android 下添加了
defaultConfig {
multiDexEnabled true
}
(2)在一个module下,提示各种UTF-8不可映射,因此在每个module的build.gradule添加了:
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
(3)引用了
compile ('com.google.http-client:google-http-client-android:1.21.0')
{exclude group: 'com.google.guava'}
compile ('com.google.api-client:google-api-client-android:1.21.0')
{exclude group: 'com.google.guava'}
compile ('com.google.api-client:google-api-client-gson:1.21.0')
{exclude group: 'com.google.guava'}
compile ('com.google.code.gson:gson:2.4')
这个过程需要下载。
其中,exclude 表示了排除之前已经编译过的包
compile 'com.google.guava:guava:18.0'
6.引入.so 文件,由于没有设置svn可以下载.so文件,我自己copy过去
一开始,还是没有检测到.so文件在哪里使用,后来,我可以查看bugly,然后我上网查到了
首先添加了:
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
然后是在lib中的armeabi中的名字修改成 armeabi-v7a,
接下来是在src 下新建
名为jniLibs的文件夹,然后把armeabi-v7a整个文件夹移过去。
7.一些方法是过时的,因此需要在gradule.build中添加这个方法所在的库,例如:
useLibrary 'org.apache.http.legacy'
不过,接下来,就是需要使用新的包来适配方法。
8.每次出现问题重新修改以后,都是需要clean build和rebuild
总的来说,我都是需要关注一个android studio 的每个版本升级需要注意的地方
然后,由于自己对于android很多东西都不熟悉,因此需要百度快速找到解决问题的方法,同时我还要多琢磨每个方法的使用逻辑。
将公司的主要项目从eclipse迁移到android studio for mac环境(1)的更多相关文章
- 将公司的主要项目从eclipse迁移到android studio for mac环境(2)
1.将eclipse 的 代码迁移到android studio的过程中,现在已经有了一个未优化版本能够在android studio使用,这时候,只需要将已优化版本的代码中的libs res s ...
- 从Eclipse迁移到Android Studio碰到的问题记录
背景: 1. 一直在做.NET的开发,工作之余,学习了一下Android开发,写了一些Demo,当时用的Eclipse开发工具:这两天,刚好项目不是很忙,就打算把之前写的Demo,迁移到Android ...
- 从 Eclipse 迁移至 Android Studio
从 Eclipse 迁移至 Android Studio 本文内容 Android Studio 基础知识 迁移先决条件 将项目导入 Android Studio 后续步骤 将项目迁移至 Androi ...
- Android studio:从Eclipse迁移到Android Studio【一】
转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=255061&extra=page%3D2%26filter%3Dautho ...
- Android studio 使用心得(三)—从Eclipse迁移到Android studio
断断续续的也算是把eclipse上的代码成功迁移到android studio上来了,现在,我同事继续用eclipse,我用android studio,svn上还是之前eclipse的项目,迁移成功 ...
- 如何从Eclipse 迁移到Android Studio 且保持Eclipse项目结构
本文demo下载:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=531 Android项目 Eclipse与A ...
- Eclipse迁移到Android studio步骤如下:
一.从Eclipse中导出:1.将你的ADT插件版本升级到22.0以上.2.在Eclipse中,选择File-->Export.3.在弹出的导出窗口中,打开Android的文件夹,选择“Gene ...
- 从Eclipse迁移到Android Studio
Google正式推出了Android Studio 1.0,Android默认的开发工具也由Eclipse变成了intellij,对Eclipse的支持肯定会越来越少了,对于Android开发者来说, ...
- Eclipse 迁移到Android studio
步骤: 1.安装 android-studio-bundle-143.2915827-windows https://developer.android.com/studio/install.html ...
随机推荐
- IIS服务的部署
1.安装 C:\Windows\Microsoft.NET\Framework\v4.0.30319 aspnet_regiis -i2.添加应用程序,选择Asp.net4.03.应用目录 IIS_U ...
- 51nod1057(python2计算n!)
题目链接:www.51nod.com/onlineJudge/questionCode.html#!problemId=1057 思路:直接for循环呗- 代码: n = int( raw_input ...
- 二、JavaScript语言--JS基础--JavaScript进阶篇--选项卡切换效果
利用JavaScript知识,实现选项卡切换的效果. 效果图: 文字素材: 房产: 275万购昌平邻铁三居 总价20万买一居 200万内购五环三居 140万安家东三环 北京首现零首付楼 ...
- vim 打开高亮和关闭高亮
:set hls 找开高亮 :set nohls 关闭高亮
- windows 远程桌面命令 mstsc
win+R------>mstsc: 弹出: 目标机必开远程
- Redis笔记(八)Redis的持久化
Redis相比Memcached的很大一个优势是支持数据的持久化, 通常持久化的场景一个是做数据库使用,另一个是Redis在做缓存服务器时,防止缓存失效. Redis的持久化主要有快照Snapshot ...
- ASP.NET Web Api 实现数据的分页(转载)
转载地址:http://www.cnblogs.com/fzrain/p/3542608.html 前言 这篇文章我们将使用不同的方式实现手动分页(关于高端大气上档次的OData本文暂不涉及,但有可能 ...
- dblink
drop database link "STANDARD"; drop database link "CSPS" --创建dblink create dat ...
- 攻城狮在路上(叁)Linux(二十七)--- 压缩与打包之常见的压缩命令
前面讲到,linux中的后缀名没有特殊的意义,一般是作为不同文件类型的标识而已.下面是与打包.压缩相关的后缀名介绍: *.z:compress程序压缩文件 *.gz:gzip程序压缩文件 *.bz2: ...
- php+jquery+ajax实现用户名验证
大多数情况下,jquery代码的编写,都要求我们将jquery的代码放在以下三种中任一个function里. 有三种写法,同样效果,有点像Window.onload,但也有不同,就是window.on ...