将公司的主要项目从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 ...
随机推荐
- 阿里云服务器 && 如何window链接到阿里云服务器
现在的时间是:2016年10月11日 1:购买学生机 阿里云手机app上 -> 学生专区 -> 购买: 需要注意的是:如果没有自己需要的系统,比如没有linux操作系统的ecs,那 ...
- 环境搭建及wamp空密码修改
WAMP:快速搭建PHP环境的.Windows系统下.搭建虚拟的服务器环境.APPSERVER:同上. LAMP架构Linux系统Apache服务器管理软件Mysql数据库Php语言. 修改密码方法: ...
- RxJava学习入门
RxJava是什么 一个词:异步. RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-bas ...
- DLog的使用
DLog本质上就是个宏替换.DLog具体代码如下: #ifdef DEBUG #define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt) ...
- 查看进程,按内存从大到小 ,查看进程,按CPU利用率从大到小排序
查看进程,按内存从大到小 ps -e -o "%C : %p : %z : %a"|sort -k5 -nr 查看进程,按CPU利用率从大到小排序 ps -e -o "% ...
- AngularJS 开发中常犯的10个错误
简介 AngularJS是目前最为活跃的Javascript框架之一,AngularJS的目标之一是简化开发过程,这使得AngularJS非常善于构建小型app原型,但AngularJS对于全功能的客 ...
- 在 Android Studio中恢复已经被移除的Module
假设名为app的Module已经被移除,则他的图标上小手机图标将会消失.此时如下图编辑settings.gradle,然后点击如图按钮Sync Project with Gradle Files即可. ...
- php获取当前毫秒时间戳
最近在做一个智能家居项目的后台,需要实时上传用户对智能设备的配置信息到服务器,以便实现同步,因此对于时间的精确度要求比较高,最开始直接是用php的time()函数来获取时间戳,获取的时间精确到秒级别, ...
- codeforces Round#380 div2
1.字符串替换ogo+go…换成*** 思路:找ogo记录g位置,做初步替换和标记,非目标字母直接输出, 间隔为2的判断是否一个为标记g,一个为非标记做***替换 #include<iostre ...
- Quick-Cocos2dx 快速了解
set_dev_envirment // */ // ]]> Cocos2dx快速了解 1. Quick-Cocos2dx 开发环境搭建 1.1. 官网: 1.2. Github: 1.3. s ...