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