我在android上使用ffmpeg库来传输实时视频源。我在roman10 instructions之后遵守了ffmpeg for android。应用程序正常工作 - 它连接到服务器,下载源,对其进行转码,重新缩放并显示在设备的屏幕上。但是,在某个随机时刻之后,应用程序会崩溃Fatal signal 11 (SIGSEGV), code 1
。我使用ndk-stack
来查找问题的根源。这是崩溃转储:
********** Crash dump: **********
Build fingerprint: 'google/hammerhead/hammerhead:5.0.1/LRX22C/1602158:user/release-keys'
pid: 25241, tid: 25317, name: AsyncTask #5 >>> com.grzebyk.streamapp <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x98e74c9c
Stack frame #00 pc 00047924 /data/app/com.grzebyk.streamapp-1/lib/arm/libswscale-3.so: Unable to open symbol file /Users/grzebyk/Documents/New_Eclipse_Projects/StreamApp/libs/armeabi/libStreamApp.so/libswscale-3.so. Error (20): Not a directory
Stack frame #01 pc 00034be8 /data/app/com.grzebyk.streamapp-1/lib/arm/libswscale-3.so (sws_scale+2648): Unable to open symbol file /Users/grzebyk/Documents/New_Eclipse_Projects/StreamApp/libs/armeabi/libStreamApp.so/libswscale-3.so. Error (20): Not a directory
我的本机代码位于StreamApp.cpp文件中。对我来说,看起来应用程序试图访问位于libStreamApp.so内的libswscale-3.so(ffmpeg的一部分)。这对我来说似乎很奇怪......
所有ffmpeg的.so文件都位于/libs/armeabi/lib*.so中。当然这包括&#34;缺失&#34; libswscale-3.so。最令人不安的是,该应用程序运行正常,但它突然崩溃,并且不需要任何特定的触发器。
如果将libswscale-3.so放在labStreamApp.so中或者避免从另一个文件中引用一个.so文件,我该怎么办?
答案 0 :(得分:2)
这很简单,你已经通过了
“/ Users / grzebyk / Documents / New_Eclipse_Projects / StreamApp / libs / armeabi / libStreamApp.so /”
作为ndk-stack的参数,显然它不是文件夹:)你应该传递像
一样的smth“/用户/ grzebyk /文档/ New_Eclipse_Projects / StreamApp /库/ armeabi /”