androidsojnilibs
① android studio中so庫文件夾放在哪
android studio 中 添加.so 文件,Android Studio中添加.jar文件和.so文件無疑是一件很重要也是很頭疼的問題!
1、在src/main中添加 jniLibs文件夾 ,把.so復制進去
② android studio怎麼添加.so文件
先在Android studio導入一個項目,然後進入到項目中,依次進入到app>>src>>main下。
在main的文件下進行創建一個jnilibs,然後選中main的文件,進行右鍵,彈出框中點擊「new」,移動下一級菜單中選擇「directory」。
對創建的文件夾進行昵稱,在昵稱中進行輸入「jnilibs」,然後點擊「ok」。
這樣在main的文件中創建一個為jnilibs的文件夾。
然後在jinlibs中文件進行添加so的文件,進入到so文件存放的文件中,直接把so的文件拖動到jinlibs的文件中。
拖動完成之後,會提示一個確認款提示信息,直接點擊「ok」即可。
在non-project file access中第一個我希望編輯文件,第二個為我想在當前會話中編輯任何非項目文件,根據的自己需要進行選擇,可以默認即可,點擊ok。
這樣就把so文件添加到jnilibs的文件中,這樣的話程序的代碼就可以進行調用其中方法。
③ jnilibs so文件怎麼打開
在src/main中添加jniLibs文件夾,把.so復制進去在build.gradle中就添加這么幾行,看圖sourceSets{main{jniLibs.srcDirs=['libs']}}然後makeproject4、切換到android結構下,你會看到jniLibs中.so已經變成了.jar文件,證明已經成功
④ android studio里怎麼添加so文件
在src/main中添加 jniLibs文件夾 ,把.so復制進去
在build.gradle中就添加這么幾行 , 看圖
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
然後make project
4
4、切換到android結構下,你會看到 jniLibs 中.so已經變成了.jar文件,證明已經成功
⑤ android studio 怎麼打開so文件
先在Android studio導入一個項目,然後進入到項目中,依次進入到app>>src>>main下。
在main的文件下進行創建一個jnilibs,然後選中main的文件,進行右鍵,彈出框中點擊「new」,移動下一級菜單中選擇「directory」。
對創建的文件夾進行昵稱,在昵稱中進行輸入「jnilibs」,然後點擊「ok」。
這樣在main的文件中創建一個為jnilibs的文件夾。
然後在jinlibs中文件進行添加so的文件,進入到so文件存放的文件中,直接把so的文件拖動到jinlibs的文件中。
拖動完成之後,會提示一個確認款提示信息,直接點擊「ok」即可。
在non-project file access中第一個希望編輯文件,第二個為咱想在當前會話中編輯任何非項目文件,根據的自己需要進行選擇,可以默認即可,點擊ok。
這樣就把so文件添加到jnilibs的文件中,這樣的話程序的代碼就可以進行調用其中方法。
⑥ Android studio 怎麼載入.so文件
Android studio方法:
1、先在Android studio導入一個項目,然後進入到項目中,依次進入到app>>src>>main下。
⑦ android studio怎麼引用so
1、在src/main中添加 jniLibs文件夾 ,把.so復制進去
⑧ android 怎麼把多個so文件編譯成jar
一共分為2步:
1.在java中編寫要調用的靜態方法和需要載入的庫,並生成頭文件。
2.配置gradle
3.配置Android.mk文件和application.mk文件
下面一步步的走:
首先需要在Java類中聲明要調用的方法,以及要載入的庫,我們在包下新建一個jniUtil類,如下所示
[plain]view plain
publicclassjniUtil{
//要載入的庫,生成的庫格式為:lib+庫名.so
static{System.loadLibrary("hello-jni");}
//要調用的本地方法,在c文件中該方法名稱格式為:java_包名_類名_方法名
();
}
注意:在編譯時該類中不能有漢字,包括注釋,否則會出現編碼GBK的不可映射字元錯誤。
接下來就是利用external Tools生成頭文件.h,這里可參考點擊打開鏈接
然後就會在main目錄下生成Jni文件夾,並且包含.h文件。下面就是編寫C文件,或者可以拷貝已經寫好的C文件放置在該jni文件夾中.
2.配置gradle
我們這里不用gradle 去編譯,而是只讓他去載入已經生成的so庫,改用android.mk 去編譯(稍後配置android.mk)
在app的build.gradle 下的android 標簽下添加:
[plain]view plain
sourceSets{
main{
jni.srcDirs=[]//禁止gradle自動編譯,使用已經編譯好的So庫
jniLibs.srcDirs=['src/main/jniLibs','libs']//指向要使用的庫文件//的路徑,前邊的是自己項目的,後邊的是第三方的so
}
}
從上面可以看出,我們生成的庫是放在
src/main/jniLibs
目錄下面的,那麼這個是如何配置呢?還是在該gradle下面配置ndk的編譯腳本,注意放在android標簽外面:
[plain]view plain
tasks.withType(JavaCompile){
compileTask->compileTask.dependsOnCopyToJniLibs
}
taskndkBuild(type:Exec,description:'CompileJNIsourceviaNDK'){
Propertiesproperties=newProperties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
defndkDir=properties.getProperty('ndk.dir')
commandLine"$ndkDir/ndk-build.cmd","NDK_PROJECT_PATH=$projectDir.absolutePath\build","APP_BUILD_SCRIPT=$projectDir.absolutePath\src\main\jni\Android.mk","NDK_APPLICATION_MK=$projectDir.absolutePath\src\main\jni\Application.mk"
//你自己的mk文件目錄
}
在ndkbuild完成後把生成的so文件復制到jniLibs,這里和上面配置的載入so文件路徑要一致哦
[plain]view plain
taskCopyToJniLibs(type:Copy,dependsOn:'ndkBuild',description:'thenativelibstojniLibs'){
fromfileTree(dir:file(buildDir.absolutePath+'/libs'),include:'**/*.so')
intofile('src/main/jniLibs')
}
新建Android.mk和application.mk,這里我把Android.mk和application.mk放在jni文件夾下了,具體可以自己修改。默認生成的SO文件會在build下面的libs中,我們拷貝出來放到src/main/jniLibs下面。
3.配置Android.mk和Application.mk