因为B站尚硅谷Android视频教程《硅谷社交_项目实战》BV1cW411V7yd中的聊天室项目产生兴趣,所以想跟着写一下,但是众多观众在P6:集成环信sdk及EaseUI时遭遇挫折

网上的攻略大部分是AS2或3的记录,我通过综合B站视频,官方文档http://docs-im.easemob.com/im/android/other/easeui,http://docs-im.easemob.com/im/android/sdk/import,

旧版攻略https://blog.csdn.net/cekiasoo/article/details/81714061,实现了在Android Studio 4.0 的集成,现与大家分享经验。

如果大家有什么疑问,可以邮件交流1069176850@qq.com

0.新建一个app,版本不限,我的是

compileSdkVersion 29
buildToolsVersion "30.0.2"

1.官网注册AppID,从官网下载sdk和easeUI module(略)

2.自己选择lite或as版本,将sdk拷贝至app/libs目录下

3.根据官网的指引,修改src\main\AndroidManifest.xml,不兼容的权限我直接注释了

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.spl.im"><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.ACCESS_MOCK_LOCATION" />--><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" /><applicationandroid:name=".IMApplication"android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"><activity android:name=".controller.activity.MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!-- 设置环信应用的AppKey --><meta-data android:name="EASEMOB_APPKEY"  android:value="你的AppID" /><!-- 声明SDK所需的service SDK核心功能--><service android:name="com.hyphenate.chat.EMChatService" android:exported="true"/><service android:name="com.hyphenate.chat.EMJobService"android:permission="android.permission.BIND_JOB_SERVICE"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></application></manifest>

4.导入EaseUI,找到下载的easeUI的路径,通过File-New-Import Module,填入路径,import进来

这时,easeui应该存在于Project中

5.修改EaseUI的build.gradle,使其版本与app一致

6.修改app的build.gradle,需要指定libs的位置,以及将androidx包全部替换为v7包

plugins {id 'com.android.application'
}android {compileSdkVersion 29buildToolsVersion "30.0.2"defaultConfig {applicationId "com.spl.im"minSdkVersion 27targetSdkVersion 29versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}sourceSets{main {jniLibs.srcDirs = ['libs']}}
}dependencies {implementation fileTree(include: ['*.jar'], dir: 'libs')implementation project(path: ':easeui')implementation 'com.android.support:appcompat-v7:28.0.0'implementation 'com.android.support.constraint:constraint-layout:2.0.4'testImplementation 'junit:junit:4.+'}

7.修改最外层的gradle.properties,将

android.useAndroidX=true
android.enableJetifier=true

都注释了

8.尝试build一下,报错Theme的问题,以及layout中的ConstaintLayout问题。

将Manifest.xml中application的style/Theme行直接删了

将res/values/themes.xml以及res/values-night/themes.xml里面引用的内容删了

将layout/activity_main.xml的内容随便改一下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="Hello"/>
</LinearLayout>

9.rebuild project,发现没有报错,运行一下App,出现画面

Android Studio 4.0 集成环信sdk EaseUI全纪录相关推荐

  1. Android 使用easeui 3.0 集成环信即时通讯 我踩过的坑

    0.关于注冊账号就不用说了. 1.创建应用.获取appkey 0.创建应用 1.填写信息 2.获取appkey 2.集成 0.首先新建一个project 1.这里主要介绍使用easeui来集成环信的即 ...

  2. 环信IM SDK使用(一):集成环信SDK及注意事项

    环信IM SDK可以帮助用户快速开发IM相关的应用.如何快速集成环信IM SDK呢? 首先附上环信官网的集成SDK的文档:Android SDK 介绍及导入 一.集成环信IM SDK 1.申请环信Ap ...

  3. Vue 简单集成环信SDK

    在这里简单记录下 vue 集成环信 Web SDK 操作,简单SDK操作记录,没有完整demo,勿喷! 准备工作 一. 下载环信 Web SDK + Demo 到本地 git clone https: ...

  4. 集成环信sdk步骤(即时通讯)

    步骤: 一,从环信官网注册获得appkey(没有key 无法接入环信服务器) 二, 添加依赖 build.gradle(project) allprojects {repositories {goog ...

  5. android 集成环信SDK

    集成步骤: 1. 首先在你的项目根目录build.gradle文件的allprojects→repositories属性下加入远程库地址 allprojects {repositories {goog ...

  6. mob sdk vue 短信验证_vueCli集成环信SDK

    >[danger]把环信SDK集成到vueCli中 ---- 1. [登录环信即时通信云]([https://www.easemob.com/](https://www.easemob.com/ ...

  7. java集成环信SDK用户注册

    环信常量类 import org.springframework.stereotype.Component;/*** 环信常量保存工具类* * @author zhangxj**/ @Componen ...

  8. springboot集成环信sdk报错

    import io.swagger.client.ApiException; import io.swagger.client.api.MessagesApi; import io.swagger.c ...

  9. iOS集成环信SDK点击聊天图片无效问题

    在EaseMessageReadManager.m的-(void)showBrowserWithImages::(NSArray *)imageArray方法里 最后两句话 UIViewControl ...

最新文章

  1. 解决SQL Server管理器无法连接远程数据库Error: 1326错误
  2. mysql大于等于怎么写_数据库中大于等于0小于等于100怎样表达
  3. 转 Django+Bootstrap练习--我的类博客系统开发
  4. iOS中UIWebview中网页宽度自适应的问题
  5. hdu.1254.推箱子(bfs + 优先队列)
  6. Damon Edwards:IT运营是最可预测的DevOps差异化因素
  7. 每天一道博弈论之“巴什博弈”
  8. WCF 安全性 之 None
  9. 计算机配件模拟,模拟计算机是指什么
  10. Spring知识点简介
  11. 浅析C#的事件处理和自定义事件 (转载)
  12. FISCO BCOS Solidity 智能合约 返回多个值
  13. JAVA面向对象的三大特性
  14. 网线制作ppt_制作网线图解讲解.ppt
  15. 认识一下身边的互联网---经典互联网书籍阅读总结
  16. 做好软件测试的关键是什么,做好测试计划和测试用例的工作的关键是什么?
  17. 盖世神器PowerPro使用视频教程-1 程序的安装概述
  18. mysql如何插入图片和视频_mysql中怎样插入图片
  19. 13个风格独特的关于(About)页面设计
  20. 莽莽昆仑开鸿蒙,中国科技人,那些“芳心纵火犯”

热门文章

  1. 下载了HDTV版本的终结者2回顾~
  2. revit二次开发——过滤器
  3. oracle数据表造成死锁,解决方法
  4. 计算机系统结构基本概念
  5. 一个前端写的php博客系统2--前台展示+后台登录
  6. 融信中国见顶?欧宗洪的最后一搏
  7. 【DOTA】目标检测数据集介绍与使用
  8. python 矩量法_《电磁场与波-电磁材料及MATLAB计算》【价格 目录 书评 正版】_中国图书网...
  9. 如何凭实力搞砸一场面试?
  10. axure 6.0 序列号