环信集成
1.环信SDK介绍
(1)登录环信官方网站
http://www.easemob.com/
(2)注册账号
(3)阅读集成文档
①环信平台架构
②环信后台数据处理
③环信中数据的传递
(4)下载SDK
2)环信的Demo演示
(1)检查demo的gradle版本和android studio的gradle版本是否一致
1.项目的build.gradle
1 2 3 4 5 6 7 8 9 | buildscript { repositories { jcenter() } dependencies { // classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.android.tools.build:gradle:1.5.0' } } |
2.项目的gradle文件夹
1 2 3 4 5 6 7 | #Fri May 20 14 : 56 : 58 CST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists #distributionUrl=https\: //services.gradle.org/distributions/gradle-2.10-all.zip distributionUrl=https\: //services.gradle.org/distributions/gradle-2.8-all.zip |
(2)如果修改后,还是编译不通过,可以在build.gradle中修改
1 2 3 4 5 6 7 8 9 10 11 12 13 | dependencies { compile project( ':redpacketlibrary' ) compile project( ':EaseUI' ) compile fileTree(dir: 'libs' , include: '*.jar' , exclude: 'android-support-multidex.jar' ) //考虑到在eclipse中,直接使用源码 // compile ('com.anthonycr.grant:permissions:1.0'){ // exclude module: 'support-v4' // } // 从v7包中移除v4 compile ( 'com.android.support:appcompat-v7:23.4.0' ){ exclude module: 'support-v4' } } |
3.集成EaseUI
(1)将EaseUI模块导入到项目中,并关联到主项目中
(2)配置AndroidManifest.xml清单文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | // 配置权限 <uses-permission android:name= "android.permission.VIBRATE" /> <uses-permission android:name= "android.permission.INTERNET" /> <uses-permission android:name= "android.permission.RECORD_AUDIO" /> <uses-permission android:name= "android.permission.CAMERA" /> <uses-permission android:name= "android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name= "android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name= "android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name= "android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name= "android.permission.GET_TASKS" /> <uses-permission android:name= "android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name= "android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name= "android.permission.WAKE_LOCK" /> <uses-permission android:name= "android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name= "android.permission.READ_PHONE_STATE" /> <uses-permission android:name= "android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name= "android.permission.USE_CREDENTIALS" /> <uses-permission android:name= "com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name= "android.permission.BROADCAST_STICKY" /> <uses-permission android:name= "android.permission.WRITE_SETTINGS" /> <uses-permission android:name= "android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> <!-- 设置环信应用的appkey --> <meta-data android:name= "EASEMOB_APPKEY" android:value= "atguigudemo#demo" /> <!-- 声明sdk所需的service --> <service android:name= "com.hyphenate.chat.EMChatService" android:exported= "true" /> <!-- 声明sdk所需的receiver --> <receiver android:name= "com.hyphenate.chat.EMMonitorReceiver" > <intent-filter> <action android:name= "android.intent.action.PACKAGE_REMOVED" /> <data android:scheme= "package" /> </intent-filter> <!-- 可选filter --> <intent-filter> <action android:name= "android.intent.action.BOOT_COMPLETED" /> <action android:name= "android.intent.action.USER_PRESENT" /> </intent-filter> </receiver> |
(3)在环信官网上创建应用
(4)创建IMApplication,初始化EaseUI
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public class IMApplication extends Application { private static Context mContext; @Override public void onCreate() { super .onCreate(); EMOptions options = new EMOptions(); options.setAutoAcceptGroupInvitation( false ); // 不自动接受群邀请信息 options.setAcceptInvitationAlways( false ); // 不总是一直接受所有邀请 // 初始化EaseUI EaseUI.getInstance().init( this ,options); // 初始化模型层数据 Modle.getInstance().init( this ); mContext = this ; } // 获取全局上下文 public static Context getApplication(){ return mContext; } } // 在AndroidManifest.xml中关联 <application android:name= ".IMApplication" android:allowBackup= "true" android:icon= "@mipmap/ic_launcher" android:label= "@string/app_name" android:supportsRtl= "true" android:theme= "@style/AppTheme" > </application> |
(5)错误解决
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 编译后报如下错误 Error:Execution failed for task ':app:transformClassesWithDexForDebug' . > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command ' D:\Program Files\Java\jdk1. 7 .0_45\bin\java.exe '' finished with non-zero exit value 2 错误原因:EaseUI中的v4包和主项目中的v7包冲突, 解决办法:在项目的build.gradle将v7包中的v4包移除 dependencies { compile fileTree(dir: 'libs' , include: [ '*.jar' ]) testCompile 'junit:junit:4.12' compile ( 'com.android.support:appcompat-v7:23.4.0' ){ exclude module: 'support-v4' } compile project( ':easeui' ) } |
参考文章:http://blog.csdn.net/easemob_im/article/details/41280147
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步