为 webRTC 加载本机库时应用程序崩溃

Posted

技术标签:

【中文标题】为 webRTC 加载本机库时应用程序崩溃【英文标题】:App crashing on loading native library for webRTC 【发布时间】:2015-08-30 08:11:33 【问题描述】:

当我在 jniLibs 中为所有架构添加本机库(即 libjingle_peerconnection_so.so )时,我的应用程序崩溃了。

以下是导致应用重启崩溃的堆栈跟踪提取。

W/System.err(11538): java.lang.ClassNotFoundException: Didn't find class "org.webrtc.DataChannel$Buffer" on path: DexPathList[[zip file "/data/app/com.sample.app-2/base.apk"],nativeLibraryDirectories=[/data/app/com.sample.app-2/lib/x86, /vendor/lib, /system/lib]]

谁能告诉我我在这里做错了什么?

【问题讨论】:

【参考方案1】:

我终于找到了解决方案,Proguard 干扰了我的 webrtc 文件。在 proguard 设置中添加了保留文件。

【讨论】:

【参考方案2】:

这条线解决了我的问题。 在 progaurd 规则文件中添加以下行。

-keep class org.webrtc.**  *; 

【讨论】:

这行得通!参考可以在这里找到:github.com/RWebRTC/WebRTC-android-Learn/blob/master/RAppRTC/app/…

以上是关于为 webRTC 加载本机库时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

不变违规:不变违规:尝试从未标记为“本机”的节点获取本机标记 - 反应导航更新导致崩溃

三星 Galaxy J1 4G 上的 webRTC 应用程序崩溃

导入外部库时 Kivy 在启动时崩溃

由于本机代码,JVM与ArrayIndexOutOfBoundsException崩溃

Swift:本机检测应用程序是不是崩溃

在 WebRTC 库中关闭视图控制器时出现 EXC_BAD_ACCESS 错误时崩溃