使用libxml for Android

Ami*_*k12 5 android libxml2 android-ndk

我们有一个适用于Mac和Windows平台的应用程序,现在针对Android和iOS,使用libxml解析XML数据的应用程序,我的问题是?

1 - 我是否需要为Android平台构建libxml或者它已经作为NDK的一部分构建?

如果需要构建任何指针如何启动?

kel*_*nos 9

您有两种选择:

编写一个可以成功构建libxml的Android.mk,并依赖于主Android.mk中的结果.您可以尝试在Mac上本地构建libxml(使用configure脚本和make)以了解需要构建哪些文件,以及是否需要传递任何特殊标志.

或者,使用libxml的configure脚本并使用NDK的工具链为Android构建libxml.你必须做这样的事情:

NDK_ROOT=/path/to/ndk
API_LEVEL=YOUR_API_LEVEL
SYSROOT=$NDK_ROOT/platforms/android-$API_LEVEL/arch-arm

export CC="$NDK_ROOT/toolchains/arm-linux-androideabi-4.4.3/Darwin-x86/bin/arm-linux-androideabi-gcc"
export CFLAGS="--sysroot=$SYSROOT"
export LDFLAGS="--sysroot=$SYSROOT"

./configure --host=arm-linux-gnueabi --enable-static --disable-shared
make libxml2.la
Run Code Online (Sandbox Code Playgroud)

从技术上讲,Android的主机三元组是arm-linux-androideabi,但大多数配置脚本都无法识别它,而且就我们的目的而言,-gnueabi它足够接近.

我最后建议make libxml2.la而不仅仅是make因为测试没有正确构建.生成的库将最终出现在该.libs/文件夹中.

第二种方法可能会更容易一些,但如果您打算为多种架构(arm,armv7-a,甚至x86和mips)构建应用程序,那么编写自己的Android.mk将为您节省时间.

  • 嘿,测试没有建立,因为丢失的glob文件.请看一下这个主题https://groups.google.com/forum/#!topic/android-ndk/vSH6MWPD0Vk (2认同)