1. 程式人生 > >AndroidStudio環境下應用程式匯入第三方so庫的方法

AndroidStudio環境下應用程式匯入第三方so庫的方法

通過網上查詢資料,以及自己的嘗試,總結下AndroidStudio環境下,匯入第三方so庫的方法,以及常見的一些問題。

一.步驟

1. 新建Anodroid工程, File->New Project;

2.在彈出介面上選中Include C++ support

3.一路next,直到finish

4.假設要匯入的第三方so庫為libhello.so,在工程目錄app\src\main中新建jniLibs資料夾,

在jniLibs資料夾中建armeabi、mips64等不同的資料夾,取決於三方庫的型別,如果只有32位的庫,只需要建armeabi即可,

將libhello.so置入不同的目錄下;

5.libhello.so對應的標頭檔案,放入cpp目錄即可;

6.修改CMakeLists.txt檔案:

//add
add_library(
             hello
             SHARED
             IMPORTED
                )
set_target_properties( 
                       hello
                       PROPERTIES IMPORTED_LOCATION
                       ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libhello.so )
//modify
target_link_libraries( # Specifies the target library.
                       native-lib
                       hello
                       # Links the target library to the log library
                       # included in the NDK.
                       ${log-lib} )
7.如果第三方提供的只有32位的庫,則需要修改build.gradle(Module.app)檔案,配置只編譯32位庫:
defaultConfig {
    applicationId "xxx"
minSdkVersion 23 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" externalNativeBuild { cmake { cppFlags "-std=c++11" } } ndk { abiFilters "armeabi" } }
8.編譯完成。

二.注意事項:

1.庫需要放在jniLibs/armeabi/等目錄下,否則可能發生找不到庫的情況;

2.注意下32位庫與64位的區別,否則可能出現link錯誤。

相關推薦

AndroidStudio環境應用程式匯入第三方so方法

通過網上查詢資料,以及自己的嘗試,總結下AndroidStudio環境下,匯入第三方so庫的方法,以及常見的一些問題。 一.步驟 1. 新建Anodroid工程, File->New Project; 2.在彈出介面上選中Include C++ support 3.一

Linux應用程式找不到存在的(.so/.a)的解決方法

各種各樣的環境變數控制著一些關鍵的過程。例如你可以臨時為你特定的程式的一次執行指定一個不同的函式庫。Linux系統中,通常變數LD_LIBRARY_PATH就是可以用來指定函式庫查詢路徑的,而且這個路徑通常是在查詢標準的路徑之前查詢。這個是很有用的,特別是在除錯一個新的函式庫

java -jar引數執行打包好的jar應用程式的時候發現應用程式無法找到classpath設定好的第三方?

 你是否在使用java -jar引數執行打包好的jar應用程式的時候發現應用程式無法找到classpath下設定好的第三方類庫的內容?無論怎麼設定classpath引數都無濟於事,總是會報ClassNotFound的錯誤?那麼本篇帖子可以幫助你擺脫煩惱 :)當用java -j

windowseclipse cdt 無法執行和除錯程式,沒有輸出(除錯和執行時不修改系統變數匯入第三方dll

debug時報錯: You can't do that without a process to debug. 如果直接執行程式則沒有任何結果 原因:windows下待除錯的程式執行時需要引用的動態庫dll檔案沒有找到(雖然編譯時聯結器需要的庫已經給出,但執行時仍然需要給

AndroidStudio匯入第三方開源

AndroidStudio還是0.8的版本的時候下載下來看了一下,都推出三年左右的工具了,我竟然沒有用過,昨天打算好好研究一下以便以後轉向AS,畢竟google出的這麼好的IDE,不用都對不起自己。不過真心很好用,尤其黑色的主題風格很舒服,但對於一直使用eclipse的我還是有點不習慣,主要是導包的

記用vs調式docker環境web程式的一處坑

若選擇web專案支援https,此時launchSettings.json檔案為: "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applic

Linux環境c程式的編譯和執行

1 單個檔案的編譯和執行建立main.c檔案,內容如下: #include <stdio.h> #include <stdlib.h> int main(void){ printf("Hello world!\n"); return 0; };   編譯:

三、Spring Boot在org.springframework.boot組應用程式啟動器

表13.1. Spring Boot應用程式啟動器 名稱 描述 Pom spring-boot-starter-thymeleaf 使用Thymeleaf檢視構建MVC Web應用程式的啟動器

我的 Net應用程式釋出問題的簡易解決方案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

關於Linux環境應用生成圖片中出現亂碼的問題處理

緣由:測試環境和生產環境系統字符集都是LANG=en_US.utf8,程式在測試環境通過下述方式生成的圖片裡面的中文可以正常顯示,生產環境不行,排查原因為生產環境確認對應的字型,採取後續方法增加字型。 1、C:\Windows\Fonts下找到字型檔案simsun.ttc,重新命名為sim

spark應用程式引用第三方的jar包(轉載備用)

第一種方式 操作:將第三方jar檔案打包到最終形成的spark應用程式jar檔案中 應用場景:第三方jar檔案比較小,應用的地方比較少 第二種方式 操作:使用spark-submit提交命令的引數: –jars 要求: 1、使用spark-sub

服務計算-goland環境CLI程式

專案需求 ​使用 golang 開發 開發 Linux 命令列實用程式 中的 selpg 傳送門:https://github.com/kotomineshiki/CLI selpg功能 selpg是一個自定義的命令列程式,功能是從原始檔中讀取內容到目標檔案,將包含幾種模式。 說

Win10應用程式預設管理員許可權執行

        系統升級到win10後,普通應用程式不再預設以管理員許可權運行了。當應用程式需要訪問系統盤或調CreateFile函式進行IO驅動操作時,往往會失敗,同時,通過GetLastError函式獲取錯誤碼為5——拒絕訪問,許可權不夠。一般的解決辦法是,右鍵***.

AndroidStudio環境的jni呼叫(NDK)的方法

Step: 1. 新增native介面注意寫好native介面和System.loadLibrary()即可了,並無特別之處。Step: 2.執行Build->Make Project生成了.

Linux環境程式編譯

GCC常用編譯引數•-c:只編譯,不連線成為可執行檔案,編譯器只是由輸入的.c等原始碼檔案生成.o為字尾的目標檔案,通常用於編譯不包含主程式的子程式檔案。•-o output_filename:確定輸出檔案的名稱為output_filename,同時這個名稱不能和原始檔同名。如果不給出這個選項,gcc就給出預

Android應用程式整合第三方API(以高德Map API為例)

在Android應用程式裡面呼叫第三方API服務,可以方便、快速地開發出我們想要的一些功能。由於某些眾所周知的原因,現在Google的各種服務基本上被封鎖了,因此我們以高德Map API為例,講解如何

Windows環境MPI程式的編譯以及執行

然後按照README和網上的指示,安裝完MPICH2之後,系統中應該會出現一個名為smpd的服務程序。我多次重新安裝了MPICH2,用工作管理員檢視系統中的程序,始終沒有發現smpd這個程序;在安裝目錄下找到該程式,直接雙擊執行也失敗。在此情況下,執行並行程式時,會出現如下的錯誤提示:”Error: No

WPF應用程式嵌入第三方exe

思路是,第一步:在自己的應用程式中準備顯示第三方控制元件的容器,Border,Grid什麼的都可以,下面是觸發程式碼 private void button_Click(object sender, RoutedEventArgs e) {

linux環境Jboss程式部署

一 環境1 作業系統:centOS 72 web伺服器:jboss-eap-6.23 框架:jfinal4 工具1 Xshell2 putty 二 編譯war包使用eclipse工具,自行編譯系統,生

Android Studio匯入第三方、jar包和so

http://blog.csdn.net/lincyang/article/details/43951527/ 第三方類庫原始碼 將一網友的XMPP程式碼從ADT轉到AS時,發現其使用了第三方類庫,原始碼放在了lib下,直接在AS中Import project,第三方