2014-10-31 58 views
1

我堅持這個問題,不知道我做錯了什麼。請幫助我。適當的方式來使用第三方.so文件在Android

我正在使用2本地庫(.so)文件的android項目上工作。這兩個文件不是由我生成的,我只需要在我的項目中使用它們。

我已經將這些.so文件放在libs-> armeabi文件夾下。在代碼中,我使用System.loadLibrary(「名稱」)在一個靜態塊內加載這些庫文件。這樣做後,我清理項目並運行應用程序。我收到以下錯誤

java.lang.UnsatisfiedLinkError中:

我失去了什麼。我還沒有選中構建設置中的前兩個選項。

注:我沒有開發本地庫。我只是用它。它在以前的版本中被使用,所以我很確定.so文件的生成方式沒有任何問題。

PS:我的最終需求是這樣的,我的Android應用程序將有一個我正在開發的jar。 jar中的方法將使用這些原生函數。主應用程序不會直接訪問本機功能。我應該將.so文件放在jar中,還是放在主應用程序中?我應該如何打包jar和.so文件。

請幫助我,這是我第一次使用本機功能,我完全失去了。任何材料的鏈接都會很好。

+0

它很難幫助你,而沒有看到你想要做什麼的一些代碼。也許提供一些你在.so文件中調用方法的代碼 – 2014-10-31 23:50:33

+0

請澄清,如果你使用的是Eclipse或Android studio – G3M 2014-11-03 19:27:39

回答

1
  1. 設置PATH到您的NDK 的Eclipse - >窗口 - >首選項 - > Android的 - > NDK - >設置爲NDK

  2. 道路右鍵單擊一個Android項目,選擇Android的工具 - >添加本機支持。

  3. 修改您的Android.mk文件,包括這個.so文件

    LOCAL_PATH:= $(叫我-DIR)

    include $(CLEAR_VARS) 
    
    LOCAL_MODULE := <module_name> 
    
    LOCAL_SRC_FILES := <.so file name> 
    
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/../jni/include 
    
    include $(PREBUILT_SHARED_LIBRARY) 
    

清潔工程,並再次建立