【发布时间】:2011-06-17 22:40:26
【问题描述】:
我正在尝试将 libjnigraphics.so 预构建库加载到我的项目中,但是当我部署应用程序时,我收到此错误:
06-17 22:35:28.741: INFO/dalvikvm(298): Unable to dlopen(/data/data/com.foo/lib/libndkfoo.so): Cannot load library: link_image[1721]: 29 could not load needed library 'libjnigraphics.so' for 'libndkfoo.so' (load_library[1051]: Library 'libjnigraphics.so' not found)
编译完美,很好。
这也是我的 Android.mk:
LOCAL_PATH := $(call my-dir)
# Add prebuilt libjnigraphics
include $(CLEAR_VARS)
LOCAL_MODULE := libjnigraphics
LOCAL_SRC_FILES := libjnigraphics.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
# Here we give our module name and source file(s)
LOCAL_MODULE := ndkfoo
LOCAL_SRC_FILES := ndkfoo.c
LOCAL_SHARED_LIBRARY := libjnigraphics
#LOCAL_LDLIBS += -libjnigraphics
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
我需要放置 libjnigraphics.so 的特殊位置吗?现在我将它放在 jni 文件夹中,但是我已经在其他多个地方尝试过它仍然失败。有什么帮助吗?
【问题讨论】:
-
您是否查看了生成的 APK 以确保其中包含文件?您也可以尝试将它们放在“libs”(或 ARMv7 代码的“armeabi-v7a”)下的“armeabi”目录中 - 这是我总是放置本机库的地方,但我不确定这是否是因为构建环境或执行环境。
-
我试过将它们放入 armeabi 中,但没有骰子。我会检查 APK,但我打赌它可能不存在。另外,为什么会有反对票和投票结束?这个问题有什么问题?
-
你不应该把它放到你的项目中。该库将在目标设备中。只需使用 -libjnigraphics。
-
目标是让它在 2.1 设备上运行而无需访问 jnigraphics,这样我就可以通过 LoadBitmap 函数加载位图,否则无法访问。 stackoverflow.com/questions/4833572/…
标签: android c android-ndk