
IM即时通讯
安全可靠、全球互通

实时音视频
流畅稳定、省钱省力
回答:
1,集成融云SKD或升级融云SDK版本后出现崩溃、无法连接IM,排查日志中出现“ClassNotFoundException”异常问题:
类如下堆栈,找不到 SQLiteCustomFunction 类:
[RongLog][ NativeObject ] load sqlite:Beginning load of sqlite... Unable to find class org/sqlite/database/sqlite/SQLiteCustomFunction JNI DETECTED ERROR IN APPLICATION: JNI GetFieldID called with pending exception java.lang.ClassNotFoundException: Didn't find class "org.sqlite.database.sqlite.SQLiteCustomFunction" on path: DexPathList[[zip file "/data/app/***/base.apk"],nativeLibraryDirectories=[/data/app/***/lib/arm64, /data/app/***/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:196) at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379) at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class) (Runtime.java:-2) at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:1115) at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.Class, java.lang.String) (Runtime.java:1069) at void java.lang.Runtime.loadLibrary0(java.lang.Class, java.lang.String) (Runtime.java:1007) at void java.lang.System.loadLibrary(java.lang.String) (System.java:1667) at void io.rong.imlib.relinker.SystemLibraryLoader.loadLibrary(java.lang.String) (SystemLibraryLoader.java:24) at void io.rong.imlib.relinker.ReLinkerInstance.loadLibraryInternal(android.content.Context, java.lang.String, java.lang.String) (ReLinkerInstance.java:158) at void io.rong.imlib.relinker.ReLinkerInstance.loadLibrary(android.content.Context, java.lang.String, java.lang.String, io.rong.imlib.relinker.ReLinker$LoadListener) (ReLinkerInstance.java:132) at void io.rong.imlib.relinker.ReLinkerInstance.loadLibrary(android.content.Context, java.lang.String) (ReLinkerInstance.java:88) at void io.rong.imlib.NativeObject.<init>(android.content.Context, java.lang.String) (NativeObject.java:42) at void io.rong.imlib.NativeClient.init(android.content.Context, java.lang.String, java.lang.String, io.rong.imlib.RCConfiguration, java.lang.String) (NativeClient.java:518) at void io.rong.imlib.LibHandlerStub.<init>(android.content.Context, java.lang.String, java.lang.String, io.rong.imlib.RCConfiguration, java.lang.String, int) (LibHandlerStub.java:138) at android.os.IBinder io.rong.imlib.ipc.RongService.onBind(android.content.Intent) (RongService.java:46) at void android.app.ActivityThread.handleBindService(android.app.ActivityThread$BindServiceData) (ActivityThread.java:4430) at void android.app.ActivityThread.access$1800(android.app.ActivityThread, android.app.ActivityThread$BindServiceData) (ActivityThread.java:266) at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:2143) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:107) at void android.os.Looper.loop() (Looper.java:230) at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7987) at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2) at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:526) at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1034) in call to GetFieldID from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class)
处理方案:
一般是SDK中libs下的 libsqlite.so 库与本地项目中引用的 libsqlite.so 引起冲突。删除项目中引用的 libsqlite.so 即可,如果找不到项目中引用的 libsqlite.so ,可以删除libs下的 libsqlite.so 库一般可以解决问题。