Android studio jni开发出错点

来源:互联网 发布:简明python教程 mobi 编辑:程序博客网 时间:2024/06/11 22:27

一、配置步骤(个人爱好且用于生成.SO):

  • 先配置项目 build.gradle中的dependencies
  • 配置APP/build.gradle
  • 配置NDK,同时会自动build项目

二、生成.h
写好native方法
再\app\src\main\java目录下打开控制台,输入 javah -d ../jni (native方法所在类的名字,需要加上包名)
这里可能会报找不到该类文件的错,我遇到的原因有:
1.写好native方法之后没有生成classes文件
2.输入javah命令的位置不对(仅限此命令,因为生成.h文件的方法好多种)

三、使用.SO文件

  • 生成好.h文件,创建.c文件完成接口(尽量用c,不要用c++完成功能,C++文件容易报错,具体原因不清楚,只是试过换了一次就好了)
  • 编译项目没有报错,生成APK,但是一用到native方法有以下几种错(额,只记得几个错,以后遇到了上图):
    1.找不到.so动态库
    2.虚拟机加载不了.so
    ……
    Androidstudio2.1默认生成的.SO文件在:\app\build\intermediates\binaries\debug\lib下,
    要么在APP目录下创建libs文件夹,将内核对应的SO库放到该目录下。
    要么在build. gralde中配置SO库的路径。
    查看配置文件中SO库的名称是否一致。

四、引用自己写的JNIdemo

  • 把demo当module导入,可能build.gralde配置有问题
  • 把jni demo变成JAR包,导入到项目中的app/libs下
  • 把生成好的SO库直接拷贝到app/libs下,但是此时需要在你项目中配置
ndk {            moduleName "SO库的名字"        }

并且指定SO库的路径

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

以上全部是个人踩得坑,还好多有点不记得了,想起来再加,线记着。

0 0