【问题标题】:How to generate libpjsua2.so for x86 abi in jnilibs如何在 jnilibs 中为 x86 abi 生成 libpjsua2.so
【发布时间】:2020-05-07 13:13:42
【问题描述】:

我想在模拟器中使用 android 10 测试应用程序。因此,我在 jnilibs 中只有“armeabi”、“armeabi-v7a”、“arm64-v8a”。但是使用 android 10 设备(模拟器)运行应用程序需要 x86 abi。因此,首先我已经为 x86 下载了 ndk。第二件事是我想为 x86 abi 生成 libpjsua2.so。 我正在使用 pjsip 库。 我提到了https://trac.pjsip.org/repos/wiki/Getting-Started/Android。我试过的是, 1) 下载最新的 pjsip 版本并解压到文件夹中。 2)按照pjsip网站中给出的步骤如下,

$ cd /path/to/your/pjsip/dir
$ export ANDROID_NDK_ROOT=/path_to_android_ndk_dir 
$ ./configure-android
$ make dep && make clean && make
$ cd /path/to/your/pjsip/dir
$ make clean

# cleanup pjsua sample app
$ cd pjsip-apps/src/pjsua/android/jni
$ make clean

# also cleanup pjsua2 sample app (SWIG)
$ cd /path/to/your/pjsip/dir
$ cd pjsip-apps/src/swig
$ make clean
$ cd pjsip-apps/src/swig
$ make clean
TARGET_ABI=x86 ./configure-android --use-ndk-cflags

到达上述代码时出错,

LDFLAGS =  --sysroot= -L/libs/x86/
 LIBS = -lgnustl_static  -lc -lgcc -ldl
 AR = /home/Android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
 RANLIB = /home/Android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
 TARGET_HOST = llvm-linux-android
 TARGET_ABI = x86
checking build system type... x86_64-unknown-linux-gnu
checking host system type... Invalid configuration `llvm-linux-android': machine `llvm' not recognized
aconfigure: error: /bin/sh ./config.sub llvm-linux-android failed

在我的 pjsip2.7 文件夹中,我找到了一个名为 llvm 的文件夹,但这是一个空文件夹。我不知道那是什么。我正在使用cent os 7。为什么会出现此错误?我需要做些什么来克服这个问题。

【问题讨论】:

  • 但它失败了。 - 至少引用完整的错误消息来制作某种minimal reproducible example
  • @PeterCordes 我已经添加了我的错误代码。

标签: android java-native-interface llvm pjsip pjsua2


【解决方案1】:

尝试使用this builder 进行编译

在 ./config.cong 中替换您正在使用的 2.10

# PJSIP Version to download
PJSIP_VERSION=2.10
./prepare-build-system

然后

./build

【讨论】:

  • 我在我的项目中使用 pjsip 2.7 版。所以我需要下载相同版本的zip文件来为x86生成libpjsua2.so
  • @Kousalya 是的,方法名称不同,您的应用程序会崩溃。
  • 谢谢。我下载了 pjsip 2.7 并提取了文件。在终端中打开 pjsip 目录并使用下面的命令,export ANDROID_NDK_ROOT=/home/nexge/Android/android-ndk-r21b NDK_TOOLCHAIN_VERSION=4.9 TARGET_ABI=x86 ./configure-android --use-ndk-cflags 但我收到如下错误checking build system type... x86_64-unknown-linux-gnu checking host system type... Invalid configuration `llvm-linux-android': machine `llvm' not recognized aconfigure: error: /bin/sh ./config.sub llvm-linux-android failed
  • 你知道吗
  • @Kousalya 我遇到了这个麻烦。直到没有找到这个建造者。我用 2.7 版再次构建 yadi.sk/d/-JXS7VoIOOhCUg
猜你喜欢
  • 2015-02-11
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-07
  • 2018-02-27
相关资源
最近更新 更多