當前位置:首頁 » 安卓系統 » 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。

熱點內容
手機點菜app怎麼連接電腦伺服器 發布:2025-07-05 11:13:05 瀏覽:940
配置控制台干什麼用的 發布:2025-07-05 10:54:51 瀏覽:961
連信從哪裡改登錄密碼 發布:2025-07-05 10:54:12 瀏覽:398
怎麼修改查詢密碼 發布:2025-07-05 10:49:48 瀏覽:966
matlab文件存儲 發布:2025-07-05 10:40:46 瀏覽:85
梅州市用工實名制管理平台雲存儲 發布:2025-07-05 10:28:59 瀏覽:77
安卓origin怎麼設置 發布:2025-07-05 10:20:10 瀏覽:541
安卓為什麼跳水 發布:2025-07-05 09:55:08 瀏覽:88
達內學校php 發布:2025-07-05 09:52:05 瀏覽:399
獲取資料庫所有表 發布:2025-07-05 09:39:12 瀏覽:655