JAVA开发Android聊天APP,实现了类似QQ、的即时通讯功能
JAVA开发Android聊天APP,实现了类似QQ、的即时通讯功能我的**** ,⼤加有需要可以下载来参照⼀下。
⽂章⽬录
简介:
参考视频学习。
在学习过程中,总结了⼀些遇到的问题记录在这⾥。
问题、报错
android {
......
//指定jdk版本
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
android {
//use legacy for android 6.0(3.6.8版本之后移除apache library)
//useLibrary 'org.apache.http.legacy'
//⾃3.6.0开始需要java8的⽀持
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
//其他必要依赖
.
.....
implementation 'io.hyphenate:hyphenate-chat:xxx版本号'
}
Duplicate class android.support.v4.app.INotificationSideChannel
found in modules classes?
解决⽅法:
需要在gradle.properties中添加下⾯两⾏代码
这是因为混合⽀持库。通过添加这些⾏选择androidX作为您的⽀持库
android.useAndroidX=true
登录的时候报错
FATAL EXCEPTION: pool-3-thread-2
是因为Android Studio版本更新导致这个类没有了,在adle中添加⼀句
implementation ‘com.android.support:support-v4:30.4.1’
注册的时候失败,报错
java.io.IOException: Cleartext HTTP traffic to 114.116.241.109 not permitted
原因是Android 9.0是默认禁⽌所有http请求的,需要在代码中设置如以下代码才可以正常进⾏⽹络请求。
在l中添加,
android:usesCleartextTraffic=“true”
在导⼊v4包发现Fragment冲突
Duplicate llection.ArrayMap found in modules collection-1.1.0 (llection:collection:1.1.0) and jetified-android-support-v4 (android-support-v4.jar)
可以不需要v4包,直接⽤androidx包下的也能实现⼀样的效果
如果⽤,导⼊v4包 后要把冲突包删掉
与视频中有差别的地⽅
基于视频,说明⼀下环信EaseIMKit的使⽤与EaseUI的差别。
视频的第⼗九节
不同的是我们使⽤的Kit库继承EaseContactListFragment。实现的页⾯并没有标题栏,这个需要我们⾃⼰加上去。
可以在l中直接添加,这样的好处是,当我们切换三个fragment的时候就都可以有标题栏了,就不⽤每个页⾯都去加⼀次(我代码⾥的⽅法),挺⿇烦的。
<com.hyphenate.easeui.widget.EaseTitleBar
android:id="@+id/fragment_title_bar1"
android:layout_width="match_parent"
android:layout_height="@dimen/ease_common_title_bar_height"
app:titleBarTitle="我"
小视频app开发
android:ellipsize="marquee"
android:layout_gravity="center_horizontal|center"
android:background="@color/white"
app:titleBarDisplayHomeAsUpEnabled="true"/>
这样⼦就完成了三个页⾯的标题栏,但是想要对应页⾯,应该如何设置标题栏的字体呢。
参考开发⽂档,只要当我们的layout中使⽤的是环信提供的标题栏,那么下⾯的⽅法我们就可以⽤,包括到后⾯设计聊天窗⼝界⾯的时候。
在Java代码中,设置标题栏之前,也就是使⽤上⾯的标题栏⽅法的时候,需要先将标题栏的layout⽂件添加进当前的layout。关键代码
View searchView =LayoutInflater.form(mContext).inflate(R.layout.你的layout的⽂件名,root)
llRoot.addView(searchView,0)
...
...
看下⼀张图
然后就可以⽤上⾯的⽅法设置操作你的标题栏啦。
在对应的的fragment中调⽤上⾯的api就可以设置标题的⽂字了。
⽐如:在ContractListFragment中想要将联系⼈列表页⾯的标题栏设置为“联系⼈”

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。