中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解Android studio中正確引入so文件的方法

發布時間:2020-08-21 20:57:45 來源:腳本之家 閱讀:1415 作者:wulianghuan 欄目:移動開發

相信很多朋友在使用Android studio開發中,遇到過如何引入第三方so文件的問題,然而第三方官方僅僅給出了ADT環境下的集成方式。
Android studio中默認使用的是gradle編譯方式,與ADT編輯方式不一樣,那么so文件應當如何引入呢?

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

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

詳解Android studio中正確引入so文件的方法

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

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

task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") { 
    destinationDir file("$projectDir/libs") 
    baseName "Native_Libs2" 
    extension "jar" 
    from fileTree(dir: "libs", include: "**/*.so") 
    into "lib" 
  } 
 
  tasks.withType(JavaCompile) { 
    compileTask -> compileTask.dependsOn(nativeLibsToJar) 
  } 

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

完整的build.gradle文件如下:

apply plugin: 'com.android.application' 
 
android { 
  compileSdkVersion 21 
  buildToolsVersion "21.1.0" 
 
  defaultConfig { 
    applicationId "com.wujay.footerballstar" 
    minSdkVersion 8 
    targetSdkVersion 21 
    versionCode 1 
    versionName "1.0" 
  } 
 
  buildTypes { 
    release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
  } 
 
  task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") { 
    destinationDir file("$projectDir/libs") 
    baseName "Native_Libs2" 
    extension "jar" 
    from fileTree(dir: "libs", include: "**/*.so") 
    into "lib" 
  } 
 
  tasks.withType(JavaCompile) { 
    compileTask -> compileTask.dependsOn(nativeLibsToJar) 
  } 
} 
 
dependencies { 
  compile fileTree(dir: 'libs', include: ['*.jar']) 
  compile 'com.android.support:appcompat-v7:21.0.0' 
  compile files('libs/jpush-sdk-release1.7.2.jar') 
  compile files('libs/umeng_sdk.jar') 
  compile files('libs/libammsdk.jar') 
} 

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

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

sourceSets {
  main {
    jniLibs.srcDirs = ['libs']
  }
}

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宣威市| 东乡族自治县| 长丰县| 黄大仙区| 黔江区| 宜丰县| 牙克石市| 渝中区| 开封县| 沂南县| 通化县| 海原县| 宽甸| 闻喜县| 安远县| 湛江市| 乃东县| 万宁市| 临颍县| 营口市| 嵊泗县| 鄂温| 广汉市| 南昌县| 右玉县| 朝阳区| 昌宁县| 乌兰察布市| 江城| 南城县| 大兴区| 鄂州市| 乡城县| 建宁县| 长武县| 克东县| 浏阳市| 永仁县| 福海县| 阳高县| 呼玛县|