android使用外部共享库

时间:2012-09-12 18:39:38

标签: android android-ndk

我在Android应用程序中使用外部共享库时遇到问题。我创建了一个Android.mk文件,如下所示:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := MyApp
LOCAL_SRC_FILES := myexternallib.so
include $(PREBUILT_SHARED_LIBRARY)

使用ndk-build我能够生成本地本机库,并在System.loadLibrary方法中使用此本机库。 当我运行应用程序时,出现错误java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1486]: 2659 unknown reloc type 19 @ ( 4220)

在进一步搜索时,我发现了一个建议使用android工具链构建共享库的链接。所以我使用了一个工具链arm-eabi-gcc,它可以在android源代码的prebuilt/linux_x86/toolchain/arm-eabi-4.4.3/bin目录中找到,用于构建我的源文件。我收到错误arm-eabi-gcc: error trying to exec 'cc1': execvp: No such file or directory。我还注意到toolchain文件夹没有名为cc1的文件。

我是否遵循了正确的程序?是否有其他方法可以在Android代码中引用外部共享库?

1 个答案:

答案 0 :(得分:0)

您确实应该使用Android工具链。

Android NDK附带有关使用其工具的详细说明:http://source-android.frandroid.com/ndk/docs/STANDALONE-TOOLCHAIN.html。如果您对本文档有任何疑问,请随时提出。