我正在尝试使用openh264 lib构建pjsip项目。一切正常,除了pjsip ./configure-android
这是我的config_site.h
/* Activate Android specific settings in the 'config_site_sample.h' */
#define PJ_CONFIG_ANDROID 1
#include <pj/config_site_sample.h>
#define PJMEDIA_HAS_VIDEO 1
#define PJMEDIA_HAS_OPENH264_CODEC 1
我正在关注日志
Using OpenH264 prefix... /home/user_name/PJSIPTOOLS/openh264-1.0.0/openlib/
checking OpenH264 usability... no
由于./configure-android
没有检测到我的应用程序在运行时崩溃,说找不到openh264的lib。
我在ubuntu 14.04 32位。
任何建议。
答案 0 :(得分:4)
我刚遇到类似的问题。在下面,我将我下载并提取OpenH264的目录称为path-to-openh264
。我在该文件夹中创建了一个子目录android
,并通过设置PREFIX=android
修改了OpenH264的Makefile。然后运行以下命令来构建OpenH264为我解决了这个问题:
make OS=android NDKROOT=<path-to-ndk> TARGET=android-14 APP_ABI=armeabi ARCH=arm
make OS=android NDKROOT=<path-to-ndk> TARGET=android-14 APP_ABI=armeabi ARCH=arm clean
make install OS=android NDKROOT=<path-to-ndk> TARGET=android-14 APP_ABI=armeabi ARCH=arm
生成的libopenh264.so
文件最终应该在目录path-to-openh264/android/lib/
中。为了配置pjsip,我使用了以下命令:
APP_PLATFORM=android-14 ./configure-android --with-openh264=<path-to-openh264>/android
以下StackOverflow线程引导我走向正确的方向:
building openh264 for android platform in x86
这个问题的原因是,我首先运行了没有命令行参数的make install
命令。这导致为错误的ABI(默认值为armeabi-v7a)创建本机库文件。为armeabi ABI构建pjsip时,它无法识别库,因为它是为不同的ABI构建的。至少这是我想的。
答案 1 :(得分:2)
http://trac.pjsip.org/repos/ticket/1758
答案 2 :(得分:2)
实际上我也遇到了这个问题。
解决方案:
步骤1:转到openh264目录并创建名为“android”的文件夹
第2步:打开makefile并设置前缀
PREFIX=/your_path/openh264-1.0.0/android
步骤3:然后使用此命令构建openh264
make OS=android NDKROOT=/your_path/android-ndk-r10d TARGET=android-17 APP_ABI=armeabi
步骤4:现在使用此命令构建pjsip
TARGET_ABI=armeabi APP_PLATFORM=android-12 ./configure-android --use-ndk-cflags --with-openh264=/your_path/openh264-1.0.0/android
希望这次你会看到
Using OpenH264 prefix...
/home/user_name/PJSIPTOOLS/openh264-1.0.0/openlib/
checking OpenH264 usability... ok