【发布时间】:2015-09-11 20:24:35
【问题描述】:
我可以建立一个生产所有平台的共享库。我有一个 makefile 名称 Android.mk 为:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := com_masum_test_JniTest.c
LOCAL_MODULE := com_masum_test_JniTest
include $(BUILD_SHARED_LIBRARY)
另一个名为 Application.mk 的文件为:
APP_ABI := all
当我输入命令 ndk-build 时,它会创建所有共享库。
但是当我调用本机函数时,我得到异常:-
09-11 15:57:02.018 22949-22949/com.masum.test E/AndroidRuntime:致命异常:主要 进程:com.masum.test,PID:22949 java.lang.IllegalStateException:无法执行活动的方法
原因:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.masum.test-1/base.apk"],nativeLibraryDirectories=[/data/app /com.masum.test-1/lib/x86, /vendor/lib, /system/lib]]] 找不到“libcom_masum_test_JniTest.so”
我什至在我的工作空间中都没有看到 lib 文件夹。检查图片:-
文件浏览器:-
显然我的应用程序无法与共享库链接。那么如何链接呢?
【问题讨论】:
标签: java android c++ android-ndk linker