java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals() (tried Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals and Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals__)
at org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals(Native Method)
at org.webrtc.PeerConnectionFactory.initialize(PeerConnectionFactory.java:240)
at com.intraminds.webrtc.WebRTCPlugin.createPeerConnectionFactory(WebRTCPlugin.java:696)
at com.intraminds.webrtc.WebRTCPlugin.access$2100(WebRTCPlugin.java:134)
at com.intraminds.webrtc.WebRTCPlugin$29.run(WebRTCPlugin.java:3061)
at android.os.Handler.handleCallback(Handler.java:888)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:213)
at android.os.HandlerThread.run(HandlerThread.java:67)
报此类错误一般是找不到jni so文件的原因,可能是多个第三方sdk导致的,可能是一个sdk中支持CPU架构类型的so文件少于其他sdk,比如很多sdk只支持armeabi-v7a一种架构类型的CPU。所以只要保留他们共同的so文件就行了可在gradle配置
ndk {
//按需选择要添加的对应cpu类型的.so库。
abiFilters 'armeabi', 'x86', "mips", 'armeabi7-v7a', "armeabi-v7a"'arm64-v8a', 'mips64', 'x86_64'
}
NDK 编译ffmpeg时报错
“deabi/bin\ld: error: cannot open libavutil/libavutil.so: Invalid argument”
“make: *** [ffbuild/library.mak:103:libavfilter/libavfilter.so.7]”
分析原因:链接器无法识别 cygwin 的软链接符号
解决方案:.configure编译参数添加--ln_s="cp -rf"选项