我按照本教程构建了一个 AOSP 系统服务: http ://www.androidenea.com/2009/12/adding-system-server-to-android.html
现在我想使用一个预编译的 .so 文件,但不知道该放在哪里,这样我的代码就可以访问它。
所以,我在 framewaork/base/libs/my_folder/ 创建了一个文件夹并放了两个文件:my_lib.so android.mk
android.mk 的内容是:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= my_lib
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)
make 运行时没有错误,但是当代码尝试通过以下方式加载库时: System.loadLibrary("my_lib");
我收到了这个错误:
06-27 13:58:55.581: E/AndroidRuntime(806): 由: java.lang.UnsatisfiedLinkError: Library my_lib not found; 试过 [/vendor/lib/my_lib.so, /system/lib/my_lib.so]
所以我将so文件添加到out/target/product/generic/system/lib但得到了同样的错误。
那么我应该将 my_lib.so 文件放在哪里?并且需要一个 android.mk 吗?也许我应该在系统的某个地方注册它?
提前致谢!