使用预建的.so库构建系统应用程序

时间:2013-04-09 18:42:57

标签: android android-library android-build

我已经被困在这里一周,试图建立第三方.so库以及我的应用程序到自定义Android系统。我跟着http://www.maxters.net/2012/05/adding-prebuilt-shared-library-to-android-build-system/并成功将.so lib添加为Android Build System的预建共享库。现在我可以在../ out / target / product / crespo4g / obj / lib /.

中看到.so lib

但闪存时,此目录中的库不会迁移到设备。而我的.so lib也没有出现在/ data / data / my_app_name / lib中。执行 System.loadLibrary()时会出现 UnsatisfiedLinkError

我认为有三种方法可以解决这个问题,但只是不知道如何实现:

  1. 也许我的应用程序未能向编译器表明我的.so与我的应用程序整体一致,因此.so lib不会使用我的应用程序编译到系统映像中。但是我确实用“LOCAL_STATIC_LIBRARIES:= libXX”声明了,有什么不对吗?
  2. 有没有办法将我的.so lib构建到/ system / lib /? / system / lib /下的so libs来自哪里?
  3. 我是Android大楼的新手,请帮忙..

    谢谢!

1 个答案:

答案 0 :(得分:1)

您可能想要根据this answerthis one中的建议以及此groups thread

中的建议检查makefile

<强>更新 我的原始makefile不正确,但这对我构建ICS很有用:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libmozglue
LOCAL_SRC_FILES := libmozglue.so
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)

include $(CLEAR_VARS)
LOCAL_MODULE := libplugin-container
LOCAL_SRC_FILES := libplugin-container.so
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAGS := optional
include $(BUILD_PREBUILT)

上面是firefox for android所需的本​​机库,我将其作为系统应用程序包含在我的自定义系统构建中。