如何在android studio中匯入jni生成的 so庫

2021-12-22 10:08:07 字數 1837 閱讀 9533

1樓:08物理

(1)老版本,方法如下:

task copynativelibs(type: copy)

into new file(builddir, 'native-libs')

tasks.withtype(compile)

clean.dependson 'cleancopynativelibs'

pkgtask.jnidir new file(builddir, 'native-libs')

(2)新版本三種方法:

(2.1)打包前先生成.jar檔案後自動解包到apk檔案

task nativelibstojar(type: zip, description: 'create a jar archive of the native libs') {

destinationdir file("$builddir/native-libs")

basename 'native-libs'

extension 'jar'

from filetree(dir: 'libs', include: '**/*.so')

into 'lib/'

tasks.withtype(compile) {

compiletask -> compiletask.dependson(nativelibstojar)

下面一句話就是打包生成目錄(build\native-libs)中的.jar檔案

compile filetree(dir: "$builddir/native-libs", include: 'native-libs.jar')

(2.2)手動生成.jar檔案後自動解包到apk檔案

這個方式需要自己手動進行.so檔案壓縮,具體步驟為:將所有需要使用的.

so檔案壓縮為.zip檔案(zip中的檔案目錄結構為: lib/armeabi/*.

so)然後把zip檔案字尾改為.jar然後放到libs生成apk就ok

預設就是自動打包所有.jar檔案:

dependencies {

compile filetree(dir: 'libs', include: '*.jar')

(2.3)這也就是現在正在使用的方式(推薦) ,其實無非就是把.so檔案打包到apk的lib資料夾中,假如仔細閱讀了gradle的使用方法,自然就知道其實gradle官方在新版已經自動實現了打包.

so檔案的.很簡單級就是在配置的android節點下加入下面的內容就ok:

sourcesets {

main {

jnilibs.srcdirs = ['libs']

其他地方無需修改,整個專案的配置檔案如下:

android {

compilesdkversion 19

buildtoolsversion "19.0.0"

defaultconfig {

minsdkversion 16

targetsdkversion 19

versioncode 1

versionname "1.0"

buildtypes {

release {

runproguard false

proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.txt'

sourcesets {

main {

jnilibs.srcdirs = ['libs']

dependencies {

compile filetree(dir: 'libs', include: ['*.jar'])

如何在答題賺錢,如何在答題

回答別人的提問,只要你的回答內容對問題有幫助,被系統判定為優質回答,就有可能獲得答題獎勵了,稽核通過後方可提現。努力答題,通過稽核,做任務,然後優質答案會獎勵,提問者也會有打賞 如何在答題 賺錢 可以小打小鬧吃個鹽錢,不能奢望其他的 我答了很多題啦!上哪兒掙錢去呀?真要是隻這錢吃飯,腦袋都餓癟啦!哈...

如何在如何複製整頁,如何在 word 文件如何複製整頁

回答正在為您搜尋答案,等會兒哦,馬上為了您答覆提問請儘快解答 請儘快解答 回答方法是 1 首先點選導航欄上的檢視,在顯示裡找到導航窗格,點選。2 然後點選頁面。3 找到想複製的頁面,然後選擇下一個頁面。4 比如這裡我想複製這個有 的頁面,我就選擇這裡下一個頁面。5 插入一個空白頁。6 將想複製的那個...

如何在ubuntu下安裝,如何在UBUNTU下安裝FIREFOX

ubuntu預設更新,只會升級軟體至安全版本,而不會自動更新到新版本。比如ff,系統只會升級到3.0的最新版本 3.0.13,而不會升級到3.5.2。所以,按 煎餅601 說的做,增加ppa源即可。你直接apt get firefox不行麼。或者apt get update。全都更新了就 我的印象中...