问题描述:
在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的初始化,就会报错:
1***@qq.com
赞啊
2022-12-11 02:06
1***@qq.com
牛皮
2023-09-23 17:06
5***@qq.com
我也遇到同样的问题了,请问在哪里关?如何解决
2024-03-28 06:24