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 ...
随机推荐
- C# 获取枚举的描述Description
方法类: public static class EnumExtensions { #region Enum /// <summary> /// 获取枚举变量值的 Description ...
- 《UNIX环境高级编程》(APUE) 笔记第十二章 - 线程控制
12 - 线程控制 GitHub 地址 1. 线程限制 下图为与 线程操作 有关的一些 限制: 可以通过 sysconf 函数进行查询 . 2. 线程属性 可使用 pthread_attr_t 结构修 ...
- Ribbon软负载 (F版)
Spring Cloud 为开发者提供了在分布式系统中的一些常用的组件(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,决策竞选,分布式会话集群状态).使用Sprin ...
- Plink v0.1.0 发布——基于Flink的流处理平台
Plink是一个基于Flink的流处理平台,旨在基于 [Apache Flink]封装构建上层平台. 提供常见的作业管理功能.如作业的创建,删除,编辑,更新,保存,启动,停止,重启,管理,多作业模板配 ...
- 每日一题 - 剑指 Offer 37. 序列化二叉树
题目信息 时间: 2019-06-29 题目链接:Leetcode tag:序列化 二叉树 队列 难易程度:中等 题目描述: 请实现两个函数,分别用来序列化和反序列化二叉树. 示例: 1 / \ 2 ...
- 阿里巴巴java-数据库开发手册(2020泰山版)
阿里巴巴编程规范.数据库命名规范 首先感谢阿里,在此我也分享给小伙伴们学习,下载地址如下: 链接:https://pan.baidu.com/s/19SLpiJmyNEIKuRscftRk9Q 提取码 ...
- 关于Dfs(1);
问: 我们大部分在根不定的情况下喜欢Dfs(1):到底要不要这样呢? 解释: 首先Dfs(1):是没有任何问题的,毕竟根不定,随便选一个肯定有1,这是没问题的,但是,很多数据也是这么造的,比如在1处卡 ...
- 新手用Python运行selenium的常见问题
1.更换Python版本 打开pycharm,点击 file——setting——project项目名——project Interpreter,点击右侧的设置,如下图 选择新Python版本的安装路 ...
- 成熟度模型:企业规模化推广敏捷和DevOps利器
摘要: 本文介绍了成熟度模型在软件开发行业的应用,重点阐述了成熟度模型对于敏捷和DevOps在企业中进行规模化推广的价值,探讨了成熟度模型的设计原则,并对于如何明智使用成熟度模型给出了建议. 导言 在 ...
- 获取本机SqlServer名称
using System.Data.Sql; //检索包含有关可用SQL Server实例的信息的表,必须先使用共享/静态Instance属性来检索枚举器 SqlDataSourceEnumerato ...