RongIMClient.init(RongAppKey);初始化sdk 失败
Closed this issue · 3 comments
为了快速解决问题,在寻求帮助的时候,请提供以下信息,方便我们快速定位问题
- 本地 Flutter 版本信息
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel v1.12.13-hotfixes, v1.12.13+hotfix.9, on Mac OS X 10.15.4
19E266, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
✗ Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit
https://flutter.dev/setup/#android-setup for detailed instructions.
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Android Studio (version 4.0)
[!] VS Code (version 1.48.2)
✗ Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (1 available)
! Doctor found issues in 2 categories.
- 异常设备是 iOS 还是 Android,列出具体机型和系统
Android 小米 8SE Android 10 - 所调用的是什么 API 或者说是什么功能
RongIMClient.init(RongAppKey) - 完整的报错信息或者问题描述
E/MethodChannel#rongcloud_im_plugin: Failed to handle method call
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
at io.rong.imlib.RongIMClient.initSDK(RongIMClient.java:445)
at io.rong.imlib.RongIMClient.init(RongIMClient.java:665)
at io.rong.imlib.RongIMClient.init(RongIMClient.java:646)
at io.rong.flutter.imlib.RCIMFlutterWrapper.initRCIM(RCIMFlutterWrapper.java:440)
at io.rong.flutter.imlib.RCIMFlutterWrapper.onFlutterMethodCall(RCIMFlutterWrapper.java:145)
at io.rong.flutter.imlib.RongcloudImPlugin.onMethodCall(RongcloudImPlugin.java:21)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:336)
at android.os.Looper.loop(Looper.java:181)
at android.app.ActivityThread.main(ActivityThread.java:7520)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
经断点 发现RongcloudImPlugin.java
中 获取context 为空RCIMFlutterWrapper.getInstance().saveContext(registrar.activity().getApplicationContext());
查找相关资料 发现flutter plugin 在flutter 1.12 release 用了新的api https://flutter.dev/docs/development/packages-and-plugins/plugin-api-migration
你尝试 debug 一下 这个 RongcloudImPlugin 如下代码,应该获取到的 context 是个 null
RCIMFlutterWrapper.getInstance().saveContext(registrar.activity().getApplicationContext());
所以这边可能需要您更换一下 context 的获取方式 registrar.context() 等方法
你尝试 debug 一下 这个 RongcloudImPlugin 如下代码,应该获取到的 context 是个 null
RCIMFlutterWrapper.getInstance().saveContext(registrar.activity().getApplicationContext());所以这边可能需要您更换一下 context 的获取方式 registrar.context() 等方法
是的。debug context 为空。需要修改下RongcloudImPlugin代码。考虑到需求暂时放弃flutter 方式实现。使用原生来搞。