描述
尝试通过以下调用分配JavaI420Buffer时:
tvi.webrtc.JavaI420Buffer.allocate(width, height)我得到以下错误:
java.lang.UnsatisfiedLinkError: No implementation found for java.nio.ByteBuffer tvi.webrtc.JniCommon.nativeAllocateByteBuffer(int) (tried Java_tvi_webrtc_JniCommon_nativeAllocateByteBuffer and Java_tvi_webrtc_JniCommon_nativeAllocateByteBuffer__I)
at tvi.webrtc.JniCommon.nativeAllocateByteBuffer(Native Method)
at tvi.webrtc.JavaI420Buffer.allocate(JavaI420Buffer.java:87)
at dji.ux.beta.core.widget.fpv.FPVWidget$onSurfaceTextureAvailable$yuvDataListener$1.onYuvDataReceived(FPVWidget.kt:417)在这个错误之前,我还得到了:
2021-05-28 08:31:27.367 15131-15131/? I/tvi.webrtc.Logging: NativeLibrary: Loading native library: jingle_peerconnection_so
2021-05-28 08:31:27.367 15131-15131/? I/tvi.webrtc.Logging: NativeLibrary: Loading library: jingle_peerconnection_so
2021-05-28 08:31:27.369 15131-15131/? E/tvi.webrtc.Logging: NativeLibrary: Failed to load native library: jingle_peerconnection_so
2021-05-28 08:31:27.369 15131-15131/? E/tvi.webrtc.Logging: NativeLibrary: java.lang.UnsatisfiedLinkError: dlopen failed: library "libjingle_peerconnection_so.so" not found
2021-05-28 08:31:27.370 15131-15131/? E/tvi.webrtc.Logging: NativeLibrary: java.lang.UnsatisfiedLinkError: dlopen failed: library "libjingle_peerconnection_so.so" not found奇怪的是,如果我声明使用官方的org.webrtc库(implementation 'org.webrtc:google-webrtc:1.0.32006'),那么分配字节缓冲区的本机调用就会成功。
视频Android SDK版本
com.twilio:video-android-ktx:6.3.0
发布于 2021-06-12 15:25:55
首先,当你在kotlin中加载本机代码时,它应该是这样的:
companion object {
init {
System.loadLibrary("jingle_peerconnection")
}
}Java中的
static {
System.loadLibrary("jingle_peerconnection")
}第二,根据您的错误,找不到“library "libjingle_peerconnection_so.so"
”,您必须在"main -> java -> libs“文件夹中添加相关的Android架构文件夹。
Example : main -> java -> libs -> x86 -> .so filehttps://stackoverflow.com/questions/67770944
复制相似问题