jp1017/Android-Collection

Android Studio 下 jni 开发填坑记

jp1017 opened this issue · 4 comments

我会在这里总结下最近开发 jni 遇到的坑:

先来几个 jni 基础知识的博客:

  1. Android 开发 之 JNI入门 - NDK从入门到精通
  2. Android JNI编程—JNI基础

上面两个基本涵盖了 jni 开发说需要的知识点,好了,下面开始填坑:

先来个问题:

android studio 下 jni 开发,还需要编写 Android.mk 文件吗?

哈哈,来两个坑吧:

  1. Android Studio 下安卓 jni 开发错误 undefined reference to __android_log_print
  2. Android Studio 下安卓 jni 开发错误 undefined reference to AndroidBitmap_getInfo

这两个坑填完,我们可以看出,android studio 下 jni 开发时不需要编写 Android.mk 文件的,只要配置 gradle 脚本就可以,由gradle 脚本来负责这一工作

还有个 jni 开发打包的问题:

安卓 jni 开发 —— Android Studio 打包 so 的坑

jni 开发中出现错误最大的坑:

安卓 jni 开发错误 UnsatisfiedLinkError: Native method not found

这里要注意的地方很多,都是细节问题:包名大小写

最后一个就是 native 方法中的动态注册,这个调用效率较高:

安卓 jni 开发之 native 方法的动态注册

在gradle 打包的时候移除多余的so

android-cn/android-discuss#456