當前位置:首頁 » 安卓系統 » androidstudiojni

androidstudiojni

發布時間: 2025-05-17 15:59:42

1. 如何在Android Studio中導入JNI生成的.so庫

相信很多朋友在使用Android studio開發中,遇到過如何引入第三方so文件的問題,然而第三方官方僅僅給出了ADT環境下的集成方式。

Android studio中默認使用的是gradle編譯方式,與ADT編輯方式不一樣,那麼so文件應當如何引入呢?

其實很簡單。這里以集成JPUSH為例,看一下so文件如何引入到編譯環境,最終到JNI直接可以調用該so文件。

首先,在我們的Mole的根目錄中建立libs目錄,將jpush集成SDK中的so文件分別拷入,截圖如下:

然後就是編寫我們的build.gradle文件。

關於so文件引入的配置很簡單,代碼配置如下:

  • tasknativeLibsToJar(type:Zip,description:""){

  • destinationDirfile("$projectDir/libs")

  • baseName"Native_Libs2"

  • extension"jar"

  • fromfileTree(dir:"libs",include:"**/*.so")

  • into"lib"

  • }

  • tasks.withType(JavaCompile){

  • compileTask->compileTask.dependsOn(nativeLibsToJar)

  • }



  • 自定義一個任務,在其中指定項目所依賴的so文件的目錄,這里用了**/*.so來寫,為了省事,指定需要拷入的目錄 into "lib",那麼動態運行庫就被拷入到lib目錄中。

    完整的build.gradle文件如下:

  • applyplugin:'com.android.application'

  • android{

  • compileSdkVersion21

  • buildToolsVersion"21.1.0"

  • defaultConfig{

  • applicationId"com.wujay.footerballstar"

  • minSdkVersion8

  • targetSdkVersion21

  • versionCode1

  • versionName"1.0"

  • }

  • buildTypes{

  • release{

  • runProguardfalse

  • ('proguard-android.txt'),'proguard-rules.pro'

  • }

  • }

  • tasknativeLibsToJar(type:Zip,description:""){

  • destinationDirfile("$projectDir/libs")

  • baseName"Native_Libs2"

  • extension"jar"

  • fromfileTree(dir:"libs",include:"**/*.so")

  • into"lib"

  • }

  • tasks.withType(JavaCompile){

  • compileTask->compileTask.dependsOn(nativeLibsToJar)

  • }

  • }

  • dependencies{

  • compilefileTree(dir:'libs',include:['*.jar'])

  • compile'com.android.support:appcompat-v7:21.0.0'

  • compilefiles('libs/jpush-sdk-release1.7.2.jar')

  • compilefiles('libs/umeng_sdk.jar')

  • compilefiles('libs/libammsdk.jar')

  • }

  • 基於有人在評論區提問,這里補充一下,有一個更為快捷輕快的配置方法

    那就是在build.gradle配置中,配置如下的信息:

  • sourceSets {

  • main { jniLibs.srcDirs = ['libs']

  • }

  • }

  • 你的so包可以放在lib目錄下,跟jar包放在同樣的目錄,如lib/armeabi/libjpush172.so。

熱點內容
元神隊伍配置都由什麼組成 發布:2025-05-17 21:20:18 瀏覽:475
閑魚和安卓哪個賺錢 發布:2025-05-17 21:15:56 瀏覽:583
c語言一個c源程序 發布:2025-05-17 21:11:44 瀏覽:314
如何加密手機的文件 發布:2025-05-17 21:11:43 瀏覽:915
ios開發文件上傳 發布:2025-05-17 21:10:40 瀏覽:983
g92編程 發布:2025-05-17 21:00:31 瀏覽:170
匯編語言第三版腳本之家 發布:2025-05-17 20:54:26 瀏覽:399
資源配置最佳狀態叫什麼 發布:2025-05-17 20:48:58 瀏覽:84
定義dns伺服器的ip 發布:2025-05-17 20:32:37 瀏覽:954
android判斷圖片 發布:2025-05-17 20:32:33 瀏覽:833