把云之讯音视频Demo从Eclipse转到AndroidStudio上

前言


今天老板说让我集成下音视频的功能,我到网上搜索了下,发现有云之讯,容联,融云等都在做,这几家公司我都使用了它们提供的apk,对比了下发现云之讯的音视频还不错,就打算开始集成,但是问题来了,现在公司使用的是Android Studio开发工具,但是它们只提供了Eclipse的Demo,然后我就把Eclipse工程导入到Android Studio工程中,发现各种报错,但是最后还是导入成功了。所以这里我自己总结了一下,希望能让其他开发者使用云之讯Demo少走一些弯路。

准备工作


1、电脑配置如下:
  • Windows 7/8/10(32位或64位)
  • 内存 最低:2GB RAM,推荐:8GB RAM
  • 屏幕分辨率 最低:1280x800
2、下载一个翻墙软件,推荐使用Lantern
3、去官网上下载Android Studio版本,下载地址为 https://developer.android.com/studio/index.html
4、使用Android Studio创建一个简单的Demo,并查看gradle版本和依赖

迁移步骤


1、Eclipse导出gradle项目
右击选择你要导出的项目 -> Export -> Android(Generate Gradle build files) 然后一直下一步,选择你要导出的项目,如下图:



2、修改gradle版本和依赖(此操作最好去做,不然导入时会非常慢)
修改一:找到build.gradle(就在工程目录下)文件,修改gradle版本为Android Studio版本
    Eclipse导出的gradle:classpath 'com.android.tools.build:gradle:0.5.+'
    Android Studio版本:classpath 'com.android.tools.build:gradle:2.0.0'  (此版本以你下载的版本一致)
修改二:找到gradle-wrapper.properties文件(目录结构:gradle -> wrapper),修改distributionUrl的值为Android Studio默认值
    Eclipse导出的distributionUrl值:http\://services.gradle.org/distributions/gradle-1.6-bin.zip
    Android Studio默认值:https\://services.gradle.org/distributions/gradle-2.10-all.zip  (此值以你创建的Demo一致)

3、Android Studio导入
启动Android Studio进入“Welcome to Android Studio”这个界面,选择“Import project(Eclipse ADT,Gradle,etc)”,一定是这个选项,不然导入有问题。(如果你的Android Studio 不是在这个界面,那么通过File->close project就可以进入这个界面)然后找到步骤1中的那个项目就可以成功导入了。



4、耐心等待
第一次导入差不多需要三四分钟,后面就很快。

5、配置Android SDK(Configure Android SDK),导入Android SDK到工程中,这里你可以在SDK Manager中下载你需要的版本

6、跑你导入的工程,在跑的过程中发现一个问题,问题如下:


此问题是因为你的工程中.9图片不标准 ,你打开这个图,看下有一些bad patch,修正下就好了(如果没有用,直接删除)。Android Studio导入很方便也很简单的。但是它的lint要求严格,会要求符合标准的文件命名和.9图。

7、修改上面这个错误之后,再次跑应用,发现又出现一个问题,问题如下:


此问题是因为Android Studio检测PNG图片合法性比较严格导致,我们可以在build.gradle里面添加如下代码:
   
   
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
改完之后是这样的:
   
   
android {
...
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
...
}

8、修改上面这个错误之后,再次跑应用,发现又出现一个问题,问题如下:


此问题是代码的编码格式有问题,原来的代码格式是GBK,但是现在导入的是UTF-8,在Settings -> Editor -> File Encodings下修改,如下图:


并且在build.gradle文件里面设置如下属性:
   
   
android {
...
compileOptions {
encoding "GBK"
}
}

9、修改上面这个错误之后,再次跑应用,发现又出现一个问题,问题如下:


此问题是因为这个类是UTF-8编码,但是里面的注释是GBK编码导致。修改如下:



在右边把这个类改成GBK编码,然后选择Convert,就可以。

10、 修改上面这个错误之后,再次跑应用,应用终于安装到手机上并且跑起来了,但是一到开始界面就崩溃了,崩溃日志如下:
   
   
java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader[DexPathList[[dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-yunzhixun_video_SDK_v1000.2.0.1_L.9_release_f3553c742128a5e2c10c1bcab522738ba86a933a-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-yunzhixun_tcp_SDK_ver_3.0.5.8_release_01f592286e3f416819bf231a103a0f68005f98d7-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-yunzhixun_IM_SDK_ver_3.0.4.6_release_7b48dea13a89b8385923a9ac848946ffde24a656-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-uk_e5196f2c62913af8b93f2d3ef99bebaa1c816c41-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-baidumapapi_util_v3_6_1_b0088507dea5143e2e0c0ee3a7180477c7526ec0-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-android-support-v4_d2b240e336213fb31ae6983535f1af4b5f15538d-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-ForwardingDevelopmentTools_ver_1.0_release_32f1db7f6d41f24c0038b43335465e0167a3dffb-classes.dex", dex file "/data/data/com.yzx.im_demo/files/instant-run/dex/slice-BaiduLBS_Android_677ba3e9a86048692ea451f76614b90a2c52e7c4-classes.dex"],nativeLibraryDirectories=[/data/app/com.yzx.im_demo-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libUGo.so"
at java.lang.Runtime.loadLibrary(Runtime.java:379)
at java.lang.System.loadLibrary(System.java:1086)
at com.gl.softphone.UGoManager.<clinit>(Unknown Source)
at com.yzx.a.h.run(Unknown Source)
at java.lang.Thread.run(Thread.java:833)
分析日志发现是找不到.so库,解决办法是在build,gradle文件里面添加jniLibs.srcDirs = ['libs'],如下图:
   
   
android {
...
sourceSets {
main {
...
jniLibs.srcDirs = ['libs']
}
}
}

11、 修改上面这个错误之后,应用终于跑起来并且没有问题,但是跑起来的过程中是不是感觉有点慢,主要是因为配置的最大内存不够,下面我们就来配置下最大内存:
找到你安装Android Studio目录 -> bin -> studio64.exe.vmoptions(在这个文件里面配置),配置如下图:
   
   
-Xms2048m
-Xmx4096m
-XX:MaxPermSize=2048m
-XX:ReservedCodeCacheSize=1024m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50

参考文档:


Android Studio下载地址: https://developer.android.com/studio/index.html
Eclipse代码导入到Android Studio文档说明: http://www.cnblogs.com/jhj117/p/5638212.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值