openimsdk / open-im-sdk-android Goto Github PK
View Code? Open in Web Editor NEWIM Android
License: MIT License
IM Android
License: MIT License
{"errCode":400,"errMsg":"Key: 'paramsAccountCheck.UserIDList' Error:Field validation for 'UserIDList' failed on the 'required' tag"}
io.openim:client-sdk 在哪个仓
GOT ERROR WHEN I TRY TO RUN DEMO
Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'.
Could not resolve io.openim:client-sdk:1.4.4.
Required by:
project :app > project :flutter_openim_sdk
> Could not resolve io.openim:client-sdk:1.4.4.
> Could not get resource 'https://dl.bintray.com/aweme-open-sdk-team/public/io/openim/client-sdk/1.4.4/client-sdk-1.4.4.pom'.
> Could not GET 'https://dl.bintray.com/aweme-open-sdk-team/public/io/openim/client-sdk/1.4.4/client-sdk-1.4.4.pom'. Received status code 502 from server: Bad Gateway
802________operationID[1647068368054], info[==> open_im_sdk/pkg/db.(*DataBase).GetConversation()@66: GetConversation failed: record not found]
在classA里initSDK--设置回调监听---login登录(正常)-----logout登出---在新的实列类classB里initSDK--设置回调监听---login登录:此时回调里的类是第一次设置的classA导致部分监听回调异常,通过给ClassA和ClassB的tag对比发现,在退出登录后在新的实例里重新执行相关initSDK--设置回调监听---login登录流程时,回调里的数据是异常,登录及初始化等其它正常。如果说和Open_im_sdk或只能初始化一次的问题然后sdk里并没有uninit_sdk
你好,请问群组功能不在SDK范围内吗?chatSettingActivity里addChat这个按钮没有设置事件,是需要自己实现吗
2022-04-12 15:38:04.637 2637-0/com. E/Go: panic: runtime error: invalid memory address or nil pointer dereference
2022-04-12 15:38:04.637 2637-0/com. E/Go: [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xcd3afd0c]
2022-04-12 15:38:04.637 2637-0/com. E/Go:
2022-04-12 15:38:04.637 2637-0/com. E/Go: goroutine 38 [running]:
2022-04-12 15:38:04.637 2637-0/com. E/Go: sync.(*RWMutex).Lock(0x0)
2022-04-12 15:38:04.637 2637-2766/com. E/GoLog: panic: runtime error: invalid memory address or nil pointer dereference
2022-04-12 15:38:04.637 2637-0/com. E/Go: sync/rwmutex.go:111 +0x14
2022-04-12 15:38:04.637 2637-0/com. E/Go: open_im_sdk/open_im_sdk.(*UserRelated).setSingleMessageHasRead(0xcde55f18, {0x8a926274, 0x6})
2022-04-12 15:38:04.637 2637-0/com. E/Go: [email protected]/open_im_sdk/data_model.go:1468 +0x44
2022-04-12 15:38:04.637 2637-0/com. E/Go: open_im_sdk/open_im_sdk.(*UserRelated).MarkSingleMessageHasRead.func1({0x8a926274, 0x6}, 0xcde55f18, {0xcdb3a4e4, 0x8a926270})
2022-04-12 15:38:04.637 2637-0/com. E/Go: [email protected]/open_im_sdk/open_im_sdk_conversation_msg.go:1272 +0x6c
2022-04-12 15:38:04.637 2637-0/com. E/Go: created by open_im_sdk/open_im_sdk.(*UserRelated).MarkSingleMessageHasRead
2022-04-12 15:38:04.637 2637-0/com. E/Go: [email protected]/open_im_sdk/open_im_sdk_conversation_msg.go:1270 +0x50
普通应用安装初始化没问题,系统级别的应用初始化错误导致奔溃。
A/libc: Fatal signal 31 (SIGSYS), code 1 (SYS_SECCOMP) in tid 4193 (.xx.xxx), pid 4158 (com.xx.xxx)
2023-01-14 09:13:09.710 4201-4201/? E/DEBUG: failed to read /proc/uptime: Permission denied
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: Build fingerprint: 'alps/vnd_k62v1_64_bsp/k62v1_64_bsp:12/SP1A.210812.016/1rck61v164bspP22:userdebug/dev-keys'
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: Revision: '0'
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: ABI: 'arm'
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: Timestamp: 2023-01-14 09:13:09.709409695+0800
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: Process uptime: 0s
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: Cmdline: com.xx.xxx
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: pid: 4158, tid: 4193, name: .xx.xxx>>> com.xx.xxx<<<
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: uid: 1000
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: signal 31 (SIGSYS), code 1 (SYS_SECCOMP), fault addr --------
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: Cause: seccomp prevented call to disallowed arm system call 55
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: r0 0000004f r1 00000003 r2 00000000 r3 00000000
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: r4 00000000 r5 00000000 r6 93000138 r7 00000037
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: r8 00000007 r9 00000040 r10 930000f0 r11 c4291d50
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: ip 9306013f sp 9304bb7c lr c35531e8 pc c3591de4
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: backtrace:
2023-01-14 09:13:10.218 4201-4201/? A/DEBUG: #00 pc 00304de4 /data/app/~~41fnEM9hAd4vc7gOvaJgvw==/com.xx.xxx-xOWwXuFHW-GsPAQp4LJ1vA==/lib/arm/libgojni.so
获取不到历史消息
package io.openim.example.test;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import java.util.List;
import io.openim.android.sdk.OpenIMClient;
import io.openim.android.sdk.listener.InitSDKListener;
import io.openim.android.sdk.listener.OnAdvanceMsgListener;
import io.openim.android.sdk.listener.OnBase;
import io.openim.android.sdk.listener.OnConversationListener;
import io.openim.android.sdk.listener.OnFriendshipListener;
import io.openim.android.sdk.listener.OnGroupListener;
import io.openim.android.sdk.listener.OnMsgSendCallback;
import io.openim.android.sdk.models.ConversationInfo;
import io.openim.android.sdk.models.GroupInfo;
import io.openim.android.sdk.models.GroupMembersInfo;
import io.openim.android.sdk.models.HaveReadInfo;
import io.openim.android.sdk.models.Message;
import io.openim.android.sdk.models.UserInfo;
import io.openim.android.sdk.utils.JsonUtil;
import io.openim.example.R;
import io.openim.example.httplibrary.utils.ChineseUtils;
public class MainTestActivity extends AppCompatActivity implements InitSDKListener, OnAdvanceMsgListener, OnConversationListener, OnFriendshipListener,
OnGroupListener {
/// api地址
final static String IP_API = "http://" + BaseConent.IP_URL + ":10000";
/// websocket地址
final static String IP_WS = "ws://" + BaseConent.IP_URL + ":30000";
OpenIMClient client;
// private String uuid = "18092397182";
// private String uuidRecss = "15229015072";
// private String Token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOiIxODA5MjM5NzE4MiIsIlBsYXRmb3JtIjoiQW5kcm9pZCIsImV4cCI6MTYzNzc0MjU0MywibmJmIjoxNjM3MTM3NzQzLCJpYXQiOjE2MzcxMzc3NDN9.TWUc8l1HdPdq4ZPeVF_lFBjI_J5MY5NQKSWbMqFeiMU";
private String TAG = "--------------";
private String uuid = "15229015072";
private String uuidRecss = "18092397182";
private String Token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOiIxNTIyOTAxNTA3MiIsIlBsYXRmb3JtIjoiQW5kcm9pZCIsImV4cCI6MTYzNzc0MjYzNSwibmJmIjoxNjM3MTM3ODM1LCJpYXQiOjE2MzcxMzc4MzV9.pCQvzlZR6y06XxCPItcJ1WvPywK6QZ-BTMY-wWIF3cA";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_main);
String path = getExternalCacheDir().getAbsolutePath();
client = OpenIMClient.getInstance();
client.initSDK(IP_API, IP_WS, path, this);
client.groupManager.setOnGroupListener(this);
client.conversationManager.setOnConversationListener(this);
client.friendshipManager.setOnFriendshipListener(this);
client.messageManager.addAdvancedMsgListener(this);
}
@Override
public void onConnectFailed(long code, String error) {
Log.e("----------", "onConnectFailed" + "--code--" + code + "--error--" + error);
}
@Override
public void onConnectSuccess() {
Log.e("----------", "onConnectSuccess");
}
@Override
public void onConnecting() {
Log.e("----------", "onConnecting");
}
@Override
public void onKickedOffline() {
Log.e("----------", "onKickedOffline");
}
@Override
public void onSelfInfoUpdated(UserInfo info) {
Log.e("----------", "onSelfInfoUpdated--" + JsonUtil.toString(info));
}
@Override
public void onUserTokenExpired() {
Log.e("----------", "onUserTokenExpired");
}
@Override
public void onRecvNewMessage(Message msg) {
Log.e("----------", "onRecvNewMessage--" + JsonUtil.toString(msg));
}
@Override
public void onRecvC2CReadReceipt(List<HaveReadInfo> list) {
Log.e("----------", "onRecvC2CReadReceipt--" + list.size() + "-----" + JsonUtil.toString(list));
}
@Override
public void onRecvMessageRevoked(String msgId) {
Log.e("----------", "onRecvMessageRevoked" + "--msgId--" + msgId);
}
@Override
public void onConversationChanged(List<ConversationInfo> list) {
Log.e("----------", "onConversationChanged--" + list.size() + "-----" + JsonUtil.toString(list));
}
@Override
public void onNewConversation(List<ConversationInfo> list) {
Log.e("----------", "onNewConversation--" + list.size() + "-----" + JsonUtil.toString(list));
}
@Override
public void onSyncServerFailed() {
Log.e("----------", "onSyncServerFailed--");
}
@Override
public void onSyncServerFinish() {
Log.e("----------", "onSyncServerFinish--");
}
@Override
public void onSyncServerStart() {
Log.e("----------", "onSyncServerStart--");
}
@Override
public void onTotalUnreadMessageCountChanged(int i) {
Log.e("----------", "onTotalUnreadMessageCountChanged--i" + i);
}
@Override
public void onBlackListAdd(UserInfo u) {
Log.e("----------", "onBlackListAdd--" + JsonUtil.toString(u));
}
@Override
public void onBlackListDeleted(UserInfo u) {
Log.e("----------", "onBlackListDeleted--" + JsonUtil.toString(u));
}
@Override
public void onFriendApplicationListAccept(UserInfo u) {
Log.e("----------", "onFriendApplicationListAccept--" + JsonUtil.toString(u));
}
@Override
public void onFriendApplicationListAdded(UserInfo u) {
Log.e("----------", "onFriendApplicationListAdded--" + JsonUtil.toString(u));
}
@Override
public void onFriendApplicationListDeleted(UserInfo u) {
Log.e("----------", "onFriendApplicationListDeleted--" + JsonUtil.toString(u));
}
@Override
public void onFriendApplicationListReject(UserInfo u) {
Log.e("----------", "onFriendApplicationListReject--" + JsonUtil.toString(u));
}
@Override
public void onFriendInfoChanged(UserInfo u) {
Log.e("----------", "onFriendInfoChanged--" + JsonUtil.toString(u));
}
@Override
public void onFriendListAdded(UserInfo u) {
Log.e("----------", "onFriendListAdded--" + JsonUtil.toString(u));
}
@Override
public void onFriendListDeleted(UserInfo u) {
Log.e("----------", "onFriendListDeleted--" + JsonUtil.toString(u));
}
@Override
public void onMemberEnter(String groupId, List<GroupMembersInfo> list) {
Log.e("----------", "onFriendListDeleted--" + "groupId--" + groupId + "---" + list.size() + "-----" + JsonUtil.toString(list));
}
@Override
public void onMemberLeave(String groupId, GroupMembersInfo info) {
Log.e("----------", "onMemberLeave--" + "groupId--" + groupId + "---" + JsonUtil.toString(info));
}
@Override
public void onMemberInvited(String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list) {
Log.e("----------", "onMemberInvited--" + "groupId--" + groupId + "---" + JsonUtil.toString(opUser) + "---" + list.size() + "-----" + JsonUtil.toString(list));
}
@Override
public void onMemberKicked(String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list) {
Log.e("----------", "onMemberKicked--" + "groupId--" + groupId + "---" + JsonUtil.toString(opUser) + "---" + list.size() + "-----" + JsonUtil.toString(list));
}
@Override
public void onGroupCreated(String groupId) {
Log.e("----------", "onGroupCreated--" + "groupId--" + groupId);
}
@Override
public void onGroupInfoChanged(String groupId, GroupInfo info) {
Log.e("----------", "onGroupInfoChanged--" + "groupId--" + groupId + "---" + JsonUtil.toString(info));
}
@Override
public void onReceiveJoinApplication(String groupId, GroupMembersInfo info, String opReason) {
Log.e("----------", "onReceiveJoinApplication" + "--groupId--" + groupId + "--opReason--" + opReason);
}
@Override
public void onApplicationProcessed(String groupId, GroupMembersInfo opUser, int agreeOrReject, String opReason) {
Log.e("----------", "onApplicationProcessed" + "--groupId--" + groupId + "--agreeOrReject--" + agreeOrReject + "--opReason--" + opReason);
}
public void onGetConversation(View view) {
String chinese = ChineseUtils.randomWord(3);
Log.e("----------", "chinese--" + chinese);
Message msg = client.messageManager.createTextMessage(chinese);
client.messageManager.sendMessage(new OnMsgSendCallback() {
@Override
public void onError(long code, String error) {
Log.e("----------", "sendMessage--" + code + "--" + error);
}
@Override
public void onProgress(long progress) {
Log.e("----------", "sendMessage--progress" + progress);
}
@Override
public void onSuccess(String s) {
Log.e("----------", "sendMessage--" + s);
}
}, msg, uuid, null, false);
}
public void onLogin(View view) {
client.login(new OnBase<String>() {
@Override
public void onError(long code, String error) {
Log.e("----------", "--" + code + "--" + error);
}
@Override
public void onSuccess(String data) {
Log.e("----------", "--" + data);
}
}, uuid, Token);
}
public void addFriend(View view) {
Message message = client.messageManager.createTextMessage("看见哈萨克");
client.messageManager.sendMessage(new OnMsgSendCallback() {
@Override
public void onError(long l, String s) {
Log.e(TAG, "onError--" + l + "--" + s);
}
@Override
public void onProgress(long l) {
Log.e(TAG, "onProgress--" + l);
}
@Override
public void onSuccess(String s) {
Log.e(TAG, "onSuccess--" + s);
}
}, message, uuid, null, false);
}
public void acceptFriendApplication(View view) {
client.friendshipManager.acceptFriendApplication(new OnBase<String>() {
@Override
public void onError(long code, String error) {
Log.e("----------", "--" + code + "--" + error);
}
@Override
public void onSuccess(String data) {
Log.e("----------", "--" + data);
}
}, uuidRecss);
}
public void onGetMessageHistory(View view) {
client.messageManager.getHistoryMessageList(new OnBase<List<Message>>() {
@Override
public void onError(long code, String error) {
Log.e("----------", "--" + code + "--" + error);
}
@Override
public void onSuccess(List<Message> data) {
Log.e("----------", "--消息数:" + "--" + data.size() + "--" + JsonUtil.toString(data));
}
}, uuidRecss, "", null, 200);
}
@Override
protected void onDestroy() {
super.onDestroy();
client.logout(new OnBase<String>() {
@Override
public void onError(long code, String error) {
Log.e("----------", "logout--" + code + "--" + error);
}
@Override
public void onSuccess(String data) {
Log.e("----------", "logout--" + data);
}
});
}
}
The SDK's gradle only has "armeabi", "armeabi-v7a", and "arm64-v8a"
None
Hello, our app has a requirement: users outside of China need to initialize with a foreign URL, while users inside China need a domestic URL. The current SDK can only initialize once and can't switch URLs. Could you consider adding an uninit interface, similar to what's available in the 3.2 iOS SDK version?
新增一个uninit的接口。
可以动态切换url
No response
No response
conversationID设置为null,分页数据会重复,且分页会无限循环
错误码是201 错误信息 是 kafka send msg err
返回错误信息: code: 905, error: resource loading is not complete
会导致切换账号再登录时闪退:
/Users/xianghairui/AndroidStudioProjects/Open-IM-SDK-Core/internal/login/init_login.go:289 +0x1a8
created by open_im_sdk/internal/login.(*LoginMgr).logout
/Users/xianghairui/AndroidStudioProjects/Open-IM-SDK-Core/internal/login/init_login.go:282 +0x86c
正常登出切换登录账号时也会闪退:
/Users/xianghairui/AndroidStudioProjects/Open-IM-SDK-Core/pkg/common/trigger_channel.go:127 +0xa4
/Users/xianghairui/AndroidStudioProjects/Open-IM-SDK-Core/pkg/common/trigger_channel.go:75 +0x8c
/Users/xianghairui/AndroidStudioProjects/Open-IM-SDK-Core/internal/interaction/heartbeat.go:144 +0xb24
/Users/xianghairui/AndroidStudioProjects/Open-IM-SDK-Core/internal/interaction/heartbeat.go:37 +0x12c
如何关闭底层go 日志?
"SDK Usage Steps:
All actions must ensure that steps 1, 2, and 3 have been completed first.
You can determine whether the initialization was successful based on the boolean value returned by the initialization or by checking the console logs when calling the login method."
android 发消息能正常发出去,但是监听没有回调,只会触发会话监听OnConversationListener 的 onConversationChanged 会话更新
client.messageManager.sendMessage(object : OnMsgSendCallback {
override fun onSuccess(s: String?) {
Log.e("发送消息", "发送成功$s")
}
override fun onProgress(progress: Long) {
Log.e("发送消息", "正在发送$progress")
}
override fun onError(code: Long, error: String?) {
Log.e("发送消息", "发送失败错误码$code")
Log.e("发送消息", "发送失败$error")
}
}, client.messageManager.createTextMessage(chat_content.text.toString()), uid, "", false)
Failed to resolve: com.github.openimsdk:open-im-sdk-android:3.4.1
Failed to resolve: com.github.openimsdk:open-im-core-sdk:3.4.1-alpha.4
No response
No response
初始化的代码是native 方法, 但是没找到.so 库
新版 initSDK
方法签名里多了几个参数。请问各参数作用是什么?文档里没说明
FilePath:internal/conversation_msg/conversation.go:171] [OperationID:1646704107345] �[0m[SyncConversations UpdateConversation failed ==> open_im_sdk/pkg/db.(*DataBase).UpdateConversation()@75: no update: RowsAffected == 0 {group_57538c11a95cacf0687142d8eb18109b 0 0 0 0 0 0 false }]
2022-03-08 09:48:27.541 26072-26174/io.openim.example E/GoLog: 2022-03-08 01:48:27.540�[31m [ERRO] [PID:26072] [FilePath:internal/conversation_msg/conversation.go:171] [OperationID:1646704111647632903] �[0m[SyncConversations UpdateConversation failed ==> open_im_sdk/pkg/db.(*DataBase).UpdateConversation()@75: no update: RowsAffected == 0 {group_57538c11a95cacf0687142d8eb18109b 0 0 0 0 0 0 false }]
io.openim.android.sdk.models.Message missing field localEx.I can see the json in logcat exist localEx,but the Message
non-existent field localEx.
Accessing Android SDK
Accessing Android SDK
No response
注册、登录、获取Token都正常,登录账号A和账号B后,已互为好友,然后分别设置addAdvancedMsgListener和setOnConversationListener,两个账号互发消息,sendMessage回调都成功,但addAdvancedMsgListener和setOnConversationListener有时候无响应,有时候收到消息后JNI层会崩溃而且频率比较高,还有获取好友getFriendList接口在app第一次打开时获取成功但是为空,重启后正常,测试环境为木木模拟器和夜神模拟器
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/alibaba/fastjson/JSONObject;
at io.openim.android.sdk.utils.JsonUtil.toString(JsonUtil.java:9)
at io.openim.android.sdk.OpenIMClient.initSDK(OpenIMClient.java:75)
at io.openim.example.MainActivity.onCreate(MainActivity.java:44)
at android.app.Activity.performCreate(Activity.java:7383)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3256)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3411)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7529)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.alibaba.fastjson.JSONObject" on path: DexPathList[[zip file "/data/app/io.openim.example-xUajOWjem03eSt1hrp6d6A==/base.apk"],nativeLibraryDirectories=[/data/app/io.openim.example-xUajOWjem03eSt1hrp6d6A==/lib/arm64, /data/app/io.openim.example-xUajOWjem03eSt1hrp6d6A==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /product/lib64, /preas/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at io.openim.android.sdk.utils.JsonUtil.toString(JsonUtil.java:9)
at io.openim.android.sdk.OpenIMClient.initSDK(OpenIMClient.java:75)
at io.openim.example.MainActivity.onCreate(MainActivity.java:44)
at android.app.Activity.performCreate(Activity.java:7383)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3256)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3411)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994)
at android.os.Handler.dispatchMessage(Handler.java:108)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7529)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
2021-11-16 10:57:17.743 22813-22985/cn.d_college.app I/GoLog: [ utils.go : 482 ] [call post2Api: http://1xx.1xx5.16xx.204:10000/user/get_user_info]
2021-11-16 10:57:26.838 22813-22991/cn.d_college.app I/GoLog: [ utils.go : 482 ] [call post2Api: http://11xx.11xx.1xx9.2xx:10000/friend/add_friend]
2021-11-16 10:57:57.132 24392-24392/cn.d_college.app I/GoLog: [ open_im_sdk_interface.go : 35 ] [InitSDK, config {"ipWs":"ws://1xx.1xx.1xx.2xx:1xx78","dbDir":"/storage/emulated/0/Android/data/cn.d_college.app/cache","ipApi":"http://1xx.1xx.1xx.2xx.204:10000","platform":2}]
2021-11-16 10:57:57.133 24392-24392/cn.d_college.app I/GoLog: [ open_im_sdk_init_login.go : 16 ] [InitOnce success, {2 http://114.1xx.xx.2xx:10000 ws://1xx.11xx.1xx9.2xx4:1xx78 /storage/emulated/0/Android/data/cn.d_college.app/cache}]
2021-11-16 10:57:57.133 24392-24392/cn.d_college.app I/GoLog: [ init_login.go : 29 ] [init success, {"ipWs":"ws://xx.1xx5.1xxxx4:17778","dbDir":"/storage/emulated/0/Android/data/cn.d_college.app/cache","ipApi":"http://1xx.1xx.1xx.204:10xx","platform":2}]
2021-11-16 10:57:57.133 24392-24535/cn.d_college.app I/GoLog: [ cmd_interface.go : 87 ] [doListener start. 0x40001901e0]
2021-11-16 10:57:57.133 24392-24535/cn.d_college.app I/GoLog: [ cmd_interface.go : 89 ] [doListener for.]
2021-11-16 10:57:57.134 24392-24535/cn.d_college.app I/GoLog: [ init_login.go : 73 ] [login start, 13353519279 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOiIxMzM1MzUxOTI3OSIsIlBsYXRmb3JtIjoiQW5kcm9pZCIsImV4cCI6LTE0NDg0ODI4NDYsIm5iZiI6MTYzNzAyOTM3NSwiaWF0IjoxNjM3MDI5Mzc1fQ.DVzXonkg7QrPO1V2WrcoacPv97dofM01HwxURlvcgt0]
2021-11-16 10:57:57.135 24392-24535/cn.d_college.app I/GoLog: [ data_model.go : 60 ] [open db: /storage/emulated/0/Android/data/cn.d_college.app/cacheOpenIM_13353519279.db]
2021-11-16 10:57:57.138 24392-24535/cn.d_college.app I/GoLog: [ init_login.go : 85 ] [initDBX ok 13353519279]
2021-11-16 10:57:57.138 24392-24535/cn.d_college.app I/GoLog: [ init_login.go : 383 ] reConn call func begin, args: []
2021-11-16 10:57:57.238 24392-24540/cn.d_college.app I/GoLog: [ init_login.go : 396 ] reConn failed return args(info): [ websocket: bad handshake ws://114.1xx.1xx204:17778?sendID=13353519279&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOiIxMzM1MzUxOTI3OSIsIlBsYXRmb3JtIjoiQW5kcm9pZCIsImV4cCI6LTE0NDg0ODI4NDYsIm5iZiI6MTYzNzAyOTM3NSwiaWF0IjoxNjM3MDI5Mzc1fQ.DVzXonkg7QrPO1V2WrcoacPv97dofM01HwxURlvcgt0&platformID=2]
2021-11-16 10:57:57.239 24392-24540/cn.d_college.app I/GoLog: [ init_login.go : 92 ] [reConn failed websocket: bad handshake]
2021-11-16 10:57:57.721 24392-24535/cn.d_college.app I/GoLog: [ utils.go : 482 ] [call post2Api: http://11xx.xx.xx.xx4:10000/user/update_user_info]
各平台的SDK源码没有提供吗
E/GoLog: panic: runtime error: invalid memory address or nil pointer dereference
E/GoLog: [signal SIGSEGV: segmentation violation code=0x1 addr=0x58 pc=0x77fecc67ac]
请检查 ,
1.升级sdk 里面aar到1.1.9
2.保证所以方法在login回调成功之后操作
3.会话 ,好友关系,消息,群组,每个管理器 都需要设置监听
如公告: o.opeim.client-sdk:源码开源地址:https://github.com/OpenIMSDK/Open-IM-SDK-Core.git
如下java类在哪呢,Open_im_sdk 。整个open_im_sdk包下的java是没有找到
当前版本的SDK似乎并没有提供网络电话和网络视频的功能,看官网文档实时音视频属于敬请期待,请问后续客户端sdk会提供相关支持吗?
获取的uid和token 16603404600_________________eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOiIxNjYwMzQwNDYwMCIsIlBsYXRmb3JtIjoiTGludXgiLCJleHAiOjE2NDY4MTk5NzIsIm5iZiI6MTY0NjIxNTE3MiwiaWF0IjoxNjQ2MjE1MTcyfQ.eXYBKXN8cOZ2z3UuWboRLGlsSdTdpoJkUCfQrOVpviE
登录返回的错误信息
702_________________operationID[1646293913360], info[==> open_im_sdk/internal/login.CheckToken()@256: GetSelfUserInfoFromSvr failed 1646293913360: ==> open_im_sdk/internal/user.(*User).GetSelfUserInfoFromSvr()@141: 1646293913360: ==> open_im_sdk/pkg/common.CheckErrAndResp()@79: api resp failed: ==> open_im_sdk/pkg/network.Post2Api()@42: post: ==> open_im_sdk/pkg/network.postLogic()@70: status code failed http://122.9.124.193:10000/user/get_self_user_info: 404 Not Found]
package io.openim.example;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import java.util.List;
import io.openim.android.sdk.OpenIMClient;
import io.openim.android.sdk.listener.InitSDKListener;
import io.openim.android.sdk.listener.OnAdvanceMsgListener;
import io.openim.android.sdk.listener.OnBase;
import io.openim.android.sdk.listener.OnConversationListener;
import io.openim.android.sdk.listener.OnFriendshipListener;
import io.openim.android.sdk.listener.OnGroupListener;
import io.openim.android.sdk.listener.OnMsgSendCallback;
import io.openim.android.sdk.manager.MessageManager;
import io.openim.android.sdk.models.ConversationInfo;
import io.openim.android.sdk.models.GroupInfo;
import io.openim.android.sdk.models.GroupMembersInfo;
import io.openim.android.sdk.models.HaveReadInfo;
import io.openim.android.sdk.models.Message;
import io.openim.android.sdk.models.UserInfo;
import io.openim.android.sdk.utils.JsonUtil;
public class MainActivity extends AppCompatActivity implements InitSDKListener, OnAdvanceMsgListener, OnConversationListener, OnFriendshipListener,
OnGroupListener {
/// api地址
final static String IP_API = "http://192.168.2.129:10800";
/// websocket地址
final static String IP_WS = "ws://192.168.2.129:10800";
Message msg ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String path = getExternalCacheDir().getAbsolutePath();
OpenIMClient client = OpenIMClient.getInstance();
client.initSDK(IP_API, IP_WS, path, this);
msg = client.messageManager.createTextMessage("hello world");
msg.setSendID("3569842");
msg.setPlatformID(2);
msg.setRecvID("36429543");
msg.setClientMsgID("sadd");
msg.setSessionType(1);
msg.setSenderNickName("asdads");
System.out.println("=======send=================" + JsonUtil.toString(msg));
client.messageManager.sendMessage(new OnMsgSendCallback() {
@Override
public void onError(long code, String error) {
}
@Override
public void onProgress(long progress) {
}
@Override
public void onSuccess(String s) {
}
}, msg, "36429530", "", false);
client.messageManager.addAdvancedMsgListener(this);
client.groupManager.setOnGroupListener(this);
client.conversationManager.setOnConversationListener(this);
client.friendshipManager.setOnFriendshipListener(this);
// uid: 13918588195, token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
}
@Override
public void onConnectFailed(long code, String error) {
System.out.println("=======onConnectFailed=================");
}
@Override
public void onConnectSuccess() {
System.out.println("===========onConnectSuccess=============");
}
@Override
public void onConnecting() {
System.out.println("==========onConnecting==============");
}
@Override
public void onKickedOffline() {
System.out.println("==========onKickedOffline==============");
}
@Override
public void onSelfInfoUpdated(UserInfo info) {
System.out.println("==========onSelfInfoUpdated==============");
}
@Override
public void onUserTokenExpired() {
System.out.println("=========onUserTokenExpired===============");
}
@Override
public void onRecvNewMessage(Message msg) {
System.out.println("=========onRecvNewMessage===============");
}
@Override
public void onRecvC2CReadReceipt(List<HaveReadInfo> list) {
System.out.println("========onRecvC2CReadReceipt================");
}
@Override
public void onRecvMessageRevoked(String msgId) {
System.out.println("=======onRecvMessageRevoked=================");
}
@Override
public void onConversationChanged(List<ConversationInfo> list) {
System.out.println("========onConversationChanged================");
}
@Override
public void onNewConversation(List<ConversationInfo> list) {
System.out.println("==========onNewConversation==============");
}
@Override
public void onSyncServerFailed() {
System.out.println("========onSyncServerFailed================");
}
@Override
public void onSyncServerFinish() {
System.out.println("=========onSyncServerFinish===============");
}
@Override
public void onSyncServerStart() {
System.out.println("=========onSyncServerStart===============");
}
@Override
public void onTotalUnreadMessageCountChanged(int i) {
System.out.println("==========onTotalUnreadMessageCountChanged==============");
}
@Override
public void onBlackListAdd(UserInfo u) {
System.out.println("==========onBlackListAdd==============");
}
@Override
public void onBlackListDeleted(UserInfo u) {
System.out.println("=======onBlackListDeleted=================");
}
@Override
public void onFriendApplicationListAccept(UserInfo u) {
System.out.println("=========onFriendApplicationListAccept===============");
}
@Override
public void onFriendApplicationListAdded(UserInfo u) {
System.out.println("==========onFriendApplicationListAdded==============");
}
@Override
public void onFriendApplicationListDeleted(UserInfo u) {
System.out.println("======onFriendApplicationListDeleted==================");
}
@Override
public void onFriendApplicationListReject(UserInfo u) {
System.out.println("=======onFriendApplicationListReject=================");
}
@Override
public void onFriendInfoChanged(UserInfo u) {
System.out.println("=====onFriendInfoChanged===================");
}
@Override
public void onFriendListAdded(UserInfo u) {
System.out.println("========onFriendListAdded================");
}
@Override
public void onFriendListDeleted(UserInfo u) {
System.out.println("========onFriendListDeleted================");
}
@Override
public void onMemberEnter(String groupId, List<GroupMembersInfo> list) {
System.out.println("========onMemberEnter================");
}
@Override
public void onMemberLeave(String groupId, GroupMembersInfo info) {
System.out.println("=========onMemberLeave===============");
}
@Override
public void onMemberInvited(String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list) {
System.out.println("=========onMemberInvited===============");
}
@Override
public void onMemberKicked(String groupId, GroupMembersInfo opUser, List<GroupMembersInfo> list) {
System.out.println("=========onMemberKicked===============");
}
@Override
public void onGroupCreated(String groupId) {
System.out.println("==========onGroupCreated==============");
}
@Override
public void onGroupInfoChanged(String groupId, GroupInfo info) {
System.out.println("===========onGroupInfoChanged=============");
}
@Override
public void onReceiveJoinApplication(String groupId, GroupMembersInfo info, String opReason) {
System.out.println("===========onReceiveJoinApplication=============");
}
@Override
public void onApplicationProcessed(String groupId, GroupMembersInfo opUser, int agreeOrReject, String opReason) {
System.out.println("============onApplicationProcessed============");
}
public void onGetConversation(View view) {
OpenIMClient.getInstance().conversationManager.getAllConversationList(new OnBase<List<ConversationInfo>>() {
@Override
public void onError(long code, String error) {
}
@Override
public void onSuccess(List<ConversationInfo> data) {
System.out.println("onGetConversation:" + JsonUtil.toString(data));
}
});
}
public void onLogin(View view) {
OpenIMClient.getInstance().login(new OnBase<String>() {
@Override
public void onError(long code, String error) {
}
@Override
public void onSuccess(String data) {
System.out.println("登录成功!");
}
}, "36429530", "12");
}
public void onGetMessageHistory(View view) {
OpenIMClient.getInstance().messageManager.getHistoryMessageList(new OnBase<List<Message>>() {
@Override
public void onError(long code, String error) {
}
@Override
public void onSuccess(List<Message> data) {
System.out.println("消息数:" + data.size());
}
}, "0b55c23c7fac2b34", "", null, 20);
}
public void onSend(View view) {
OpenIMClient.getInstance().messageManager.sendMessage(new OnMsgSendCallback() {
@Override
public void onError(long code, String error) {
System.out.println("发送失败!"+code+error);
}
@Override
public void onProgress(long progress) {
}
@Override
public void onSuccess(String s) {
System.out.println("发送成功!");
}
}, msg, "36429544", "", false);
}
}
open_im_sdk.Open_im_sdk#initSDK(String, IMSDKListener) SDK初始化方法回调方法不执行.
测试设备 : samsung SM-G9810
SDK 30
第一次获取会话列表,app崩溃,第二次进入就好了
OpenIMClient.getInstance().conversationManager.getAllConversationList(object : OnBase<List<ConversationInfo?>?> {
override fun onError(code: Long, error: String) {}
override fun onSuccess(data: List<ConversationInfo?>?) {
}
})
crash 信息:
E/Go: panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x792ca1eb50]
goroutine 41 [running]:
database/sql.(*Rows).Next(0x0, 0x792cf84ca9)
E/GoLog: panic: runtime error: invalid memory address or nil pointer dereference
E/Go: D:/Go/src/database/sql/sql.go:2835 +0x20
open_im_sdk.(*UserRelated).getAllConversationListModel(0x792d580520, 0x792d194dc0, 0x4000098320, 0x0, 0x0, 0x0)
C:/Users/Admin/go/src/open_im_sdk/data_model.go:441 +0xd4
open_im_sdk.(*UserRelated).GetAllConversationList.func1(0x792d580520, 0x792d19b2a0, 0x40001b9548)
C:/Users/Admin/go/src/open_im_sdk/open_im_sdk_conversation_msg.go:18 +0x20
created by open_im_sdk.(*UserRelated).GetAllConversationList
E/GoLog: [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x792ca1eb50]
E/Go: C:/Users/Admin/go/src/open_im_sdk/open_im_sdk_conversation_msg.go:17 +0x44
A/libc: Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 21009 (Thread-5), pid 18478
I
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.