2013-04-09 184 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