No implementation found for void `org.webrtc.PeerConnectionFactory.initializeAndroidGlobals(android.content.Context, boolean)
背景介绍
最近在使用 AndroidRTC 利用WebRtc屏幕共享时使用PeerConnectionFactory.initializeAndroidGlobals(context, true, true, true);
这句代码时一直报错。
而且我在本地debug总是没有问题,但是测试一打包就崩溃,我就非常纳闷。
错误日志及错误分析
java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals(android.content.Context, boolean) (tried Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals and Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals__Landroid_content_Context_2Z)
at org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals(Native Method) ~[na:0.0]
at org.webrtc.PeerConnectionFactory.initializeAndroidGlobals(PeerConnectionFactory.java:63) ~[na:0.0]
at org.webrtc.PeerConnectionFactory.initializeAndroidGlobals(PeerConnectionFactory.java:70) ~[na:0.0]
at com.focustech.android.studyfun.util.webrtc.SFWebRtcClient.<init>(SFWebRtcClient.java:409) ~[na:0.0]
at com.focustech.android.studyfun.activity.screenshare.ScreenShareActivity.init(ScreenShareActivity.java:170) ~[na:0.0]
at com.focustech.android.studyfun.activity.screenshare.ScreenShareActivity.onActivityResult(ScreenShareActivity.java:144) ~[na:0.0]
at android.app.Activity.dispatchActivityResult(Activity.java:7690) ~[na:0.0]
at android.app.ActivityThread.deliverResults(ActivityThread.java:4928) ~[na:0.0]
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4975) ~[na:0.0]
at android.app.ActivityThread.-wrap20(Unknown Source:0) ~[na:0.0]
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1950) ~[na:0.0]
at android.os.Handler.dispatchMessage(Handler.java:108) ~[na:0.0]
at android.os.Looper.loop(Looper.java:166) ~[na:0.0]
at android.app.ActivityThread.main(ActivityThread.java:7425) ~[na:0.0]
at java.lang.reflect.Method.invoke(Native Method) ~[na:0.0]
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245) ~[na:0.0]
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921) ~[na:0.0]
这个错误是JNI 找不到 Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals 函数。
问题定位
今天早上灵光一闪,我把测试打包的 abc.apk
下载下来,修改后缀名为 abc.zip
,然后解压。
真相浮现了,我在 \lib\armeabi-v7a
,\lib\x86
,\lib\x86_64
里面全都没有找到 libjingle_peerconnection_so.so
!!!
后来才知道只是 在 Android Studio(AS) 上面提交 so 库文件的一个坑。
我的 AS 用的是暗色调的主题,所以文件 libjingle_peerconnection_so.so
没有提交到 SVN 上的颜色是暗黄色,而不是正常提交 SVN 显示的白色。
问题解决
最后,我在 AS 里面右击Show In Explorer
,然后借助 TortoiseSVN
把文件提交到 SVN 了。然后让测试重新打包
No implementation found for void `org.webrtc.PeerConnectionFactory.initializeAndroidGlobals(android.content.Context, boolean)的更多相关文章
- 自定义刻度的SeekBar
<com.imibaby.client.views.CustomSeekbar android:id="@+id/myCustomSeekBar" android:layou ...
- WebRTC之Android客户端
一.WebRTC的Android客户端搭建 1.libjingle_peerconnection_so.so 2.libjingle_peerconnection.jar 3.客户端源码一份(可以在g ...
- Android WebRTC 音视频开发总结
www.cnblogs.com/lingyunhu/p/3621057.html 前面介绍了WebRTCDemo的基本结构,本节主要介绍WebRTC音视频服务端的处理,,转载请说明出处(博客园RTC. ...
- 【我的Android进阶之旅】Android调用JNI出错 java.lang.UnsatisfiedLinkError: No implementation found for的解决方法
错误描述 今天使用第三方的so库时候,调用JNI方法时出现了错误.报错如下所示: 11-01 16:39:20.979 4669-4669/com.netease.xtc.cloudmusic E/a ...
- Android IOS WebRTC 音视频开发总结(十二)-- sufaceview
谈到音视频不得不谈谈对视频呈现的理解,为了让大家能有一个更好的理解,先看看android里面SurfaceView的原理,后续陆续分享其绘画原理. 说明:本文是转载的,转载自哪里我也不知道,貌似经过很 ...
- 集成Glide4.3.1出错!AbstractMethodError: abstract method "void com.bumptech.glide.module
项目中原本是用的Glide3.7.0,一切功能正常,但是集成了网易云信的UIKIT后,就出问题了,发现是Glide4.0的问题. Glide4.0,始终会报这么一个错,就算是最简单的加载也仍然报错. ...
- [虾扯蛋] android界面框架-Window
从纯sdk及framwork的角度看,android中界面框架相关的类型有:Window,WindowManager,View等.下面就以这几个类为出发点来概览下安卓开发的"界面架构&quo ...
- ScrollView中嵌套recycleView 出现的不显示,显示不全,终极解决方案
最近公司项目中用到了ScrollView去嵌套recycleView, 最开始我天真的把recycleView直接放入scrollView中,结果可想而知,什么都不显示,瞬间懵逼,我心想应该是和嵌套L ...
- Android 自动化测试—robotium(九) Junit_report测试报告重定向输出到终端SDCard
借鉴网上相关资料主要用于无root权限的终端.主要分为以下三步: 一.重写InstrumentationTestRunner类: package com.exmaple.test; import ja ...
随机推荐
- TestNG学习笔记新的
1.参考官方文档https://www.yiibai.com/html/testng/2013/0915300.html package com.cib.testng; import org.test ...
- Python分支结构与流程控制
Python分支结构与流程控制 分支结构 if 语句 分支结构在任何编程语言中都是至关重要的一环,它最主要的目的是让计算机拥有像人一样的思想,能在不同的情况下做出不同的应对方案,所以if语句不管是在什 ...
- SSM框架出现500的错误解决办法
1,先确认pom.xml中有没有导入项目依赖, 2,发现导入之后还是报500.点击File->Project Structure->Artifacts 点击SSM右键,选择put int ...
- dart快速入门教程 (6)
6.内置操作方法和属性 6.1.数字类型 1.isEven判断是否是偶数 int n = 10; print(n.isEven); // true 2.isOdd判断是否是奇数 int n = 101 ...
- 循序渐进VUE+Element 前端应用开发(13)--- 前端API接口的封装处理
在前面随笔<循序渐进VUE+Element 前端应用开发(12)--- 整合ABP框架的前端登录处理>介绍了一个系统最初接触到的前端登录处理的实现,但往往对整个系统来说,一般会有很多业务对 ...
- 前端笔记(创建顺序数组、取选中月最后一天日期、判断变量、git命令)
创建一个从0开始的顺序数组 [...new Array(5).keys()] //[0,1,2,3,4] 数组反向 [0,1,2,3,4,5].reverse() //[4,3,2,1,0] 取选中月 ...
- 每日一题 - 剑指 Offer 32 - II. 从上到下打印二叉树 II
题目信息 时间: 2019-06-25 题目链接:Leetcode tag: 队列 BFS 难易程度:简单 题目描述: 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 示 ...
- Python3笔记022 - 5.1 字符串常用操作
第5章 字符串及正则表达式 5.1 字符串常用操作 5.1.1 拼接字符串 使用+运算符可完成多个字符串的拼接,产生一个新的字符串对象. str1 = "2020年07月06日是" ...
- python 请使用迭代查找一个list中最小和最大值,并返回一个tuple
请使用迭代查找一个list中最小和最大值,并返回一个tuple: 要注意返回的值的类型是不是tuple def findMinAndMax(L): min=0 max=0 if len(L)==0: ...
- [PA2015]Siano 单调栈
由于某人找了个单调栈的题解但是没研究透所以让我们来研究............ 首先先来考虑下面一种情况,假设第\(k\)次切割时,天数为\(d_k\),高度为\(b_k\),第\(k+1\)次切割时 ...