z***@163.com
z***@163.com
  • 发布:2021-07-12 09:23
  • 更新:2022-05-10 00:55
  • 阅读:2134

uniapp开发WebRTC原生插件时报错ClassNotFoundException,请问该如何处理?

分类:uni-app

问题描述:
在uniapp,app离线打包的UniPlugin-Hello-AS项目中:
添加依赖: compileOnly 'org.webrtc:google-webrtc:1.0.32006'
在代码中调用webrtc的初始化,就会报下面的错误。是uniapp不支持webrtc吗?
单独的android项目webrtc都测试可以使用。
单独的uniapp简单插件,测试也都可以用。
但是开发webrtc原生插件就会出问题。。。。。搞的人脑壳疼。不支持的话给个准话,支持的话也请告知该如何调试。
我尝试解决的方法:

------动态的加载webrtc的so库,也不行。
------尝试在classpath中添加webrtc的路径,也不行。
------以为可能方法太多dex文件问题,使用多dex方式,也不行。

我们不想用其他的第三方如腾讯的视频插件。

A/ilder.UniPlugi: java_vm_ext.cc:577] JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.ClassNotFoundException: Didn't find class "org.webrtc.WebRtcClassLoader" on path: DexPathList[[zip file "/data/app/NUFTxFIi9Uj4hk_IOCSZpQ==/com.HBuilder.UniPlugin-PSxJX0HhpDX5WsQgFfZtZA==/base.apk"],nativeLibraryDirectories=[/data/app/NUFTxFIi9Uj4hk_IOCSZpQ==/com.HBuilder.UniPlugin-PSxJX0HhpDX5WsQgFfZtZA==/lib/arm, /data/app/~~NUFTxFIi9Uj4hk_IOCSZpQ==/com.HBuilder.UniPlugin-PSxJX0HhpDX5WsQgFfZtZA==/base.apk!/lib/armeabi-v7a, /system/lib, /system/system_ext/lib]]
java_vm_ext.cc:577] at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:207)
java_vm_ext.cc:577] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
java_vm_ext.cc:577] at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
java_vm_ext.cc:577] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class) (Runtime.java:-2)
java_vm_ext.cc:577] at java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader) (Runtime.java:1131)
java_vm_ext.cc:577] at void java.lang.Runtime.loadLibrary0(java.lang.ClassLoader, java.lang.Class, java.lang.String) (Runtime.java:1085)
java_vm_ext.cc:577] at void java.lang.Runtime.loadLibrary0(java.lang.Class, java.lang.String) (Runtime.java:1008)
java_vm_ext.cc:577] at void java.lang.System.loadLibrary(java.lang.String) (System.java:1664)
java_vm_ext.cc:577] at boolean org.webrtc.f$a.load(java.lang.String) (NativeLibrary.java:21)
java_vm_ext.cc:577] at void org.webrtc.f.b(org.webrtc.g, java.lang.String) (NativeLibrary.java:44)
java_vm_ext.cc:577] at void org.webrtc.PeerConnectionFactory.a(org.webrtc.PeerConnectionFactory$b) (PeerConnectionFactory.java:294)
java_vm_ext.cc:577] at void io.dcloud.uniplugin.TestModule.gotoNativePage() (TestModule.java:54)
java_vm_ext.cc:577] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
java_vm_ext.cc:577] at java.lang.Object com.taobao.weex.bridge.MethodInvoker.invoke(java.lang.Object, java.lang.Object[]) (MethodInvoker.java:46)
java_vm_ext.cc:577] at void com.taobao.weex.bridge.NativeInvokeHelper$2.run() (NativeInvokeHelper.java:79)
java_vm_ext.cc:577] at void com.taobao.weex.common.WXThread$SafeRunnable.run() (WXThread.java:71)
java_vm_ext.cc:577] at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:938)
java_vm_ext.cc:577] at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:99)
java_vm_ext.cc:577] at void android.os.Looper.loop() (Looper.java:236)
java_vm_ext.cc:577] at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:8037)
java_vm_ext.cc:577] at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
java_vm_ext.cc:577] at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:656)
java_vm_ext.cc:577] at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:967)
java_vm_ext.cc:577]
java_vm_ext.cc:577] in call to NewGlobalRef
java_vm_ext.cc:577] from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class)

整个示例项目只修改两个地方,一个是build中的webrtc的依赖,
另一个就是调用webrtc的初始化,就会报错:

2021-07-12 09:23 负责人:无 分享
已邀请:
z***@163.com

z***@163.com (作者) - 这家伙不懒

最终发现问题处在 混淆上,把混淆关了就行了。
好吧。真的无语了!研究了三天的问题原来就是因为4个字母导致的!

  • 1***@qq.com

    赞啊

    2022-12-11 02:06

  • 1***@qq.com

    牛皮

    2023-09-23 17:06

  • 5***@qq.com

    我也遇到同样的问题了,请问在哪里关?如何解决

    2024-03-28 06:24

z***@163.com

z***@163.com (作者) - 这家伙不懒

有没有大神知道怎么回事,帮帮我把~

z***@163.com

z***@163.com (作者) - 这家伙不懒

这个问题都没有遇到过吗?有没有大神帮忙解决下??

z***@163.com

z***@163.com (作者) - 这家伙不懒

谁帮忙解答下把??在线等

Cree

Cree

大佬有WebRTC原生插件的demo吗?我想自己打包个webrtc使用

圣名科技

圣名科技

大佬你好,webrtc的插件您准备上市场吗

7***@qq.com

7***@qq.com - 夏天可乐派

你好,我最近也在开发webrtc插件 ,不知道是否方便请教下?

  • 即时通讯开发

    https://ext.dcloud.net.cn/plugin?id=9024 不依赖第三方非原生webrtc

    2022-08-09 09:51

要回复问题请先登录注册