2013-04-09 186 views
3

我一直在这里坚持一个星期试图建立第三方.so库与我的应用程序到自定义的Android系统。我关注了http://www.maxters.net/2012/05/adding-prebuilt-shared-library-to-android-build-system/,并成功将.so lib作为预构建共享库添加到Android构建系统。现在我可以在../out/target/product/crespo4g/obj/lib/看到.so lib。建筑系统应用程序与预建.so图书馆

但是当闪烁时,此目录中的库不会被迁移到设备。而我的.so库也没有出现在/ data/data/my_app_name/lib中。因此执行时出现不完整链接错误 System.loadLibrary()。

我认为有三种方式来解决这个问题,但就是不知道如何实现:

  1. 也许我的应用程序没有指示编译器,我的。所以是随着我的应用程序作为一个整体,所以.so lib不会与我的应用程序一起编译到系统映像中。但我确实通过“LOCAL_STATIC_LIBRARIES:= libXX”声明,有什么不对吗?
  2. 有没有办法建立我的.so lib到/ system/lib /?/system/lib /下的so库位于何处?

我是新来的Android建筑,请帮助..

谢谢!

回答

1

你可能要检查你this answer Makefile中对建议和this one以及在此groups thread

UPDATE 我原来的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所需的本​​机库。

+0

您的原始生成文件是不正确的?你是如何更新makefile的? – 2015-06-15 09:37:38