Android(java)学习笔记261:JNI之编写jni程序适配所有处理器型号

时间:2023-03-08 21:50:48

1. 还是以"02_两个数相加"为例,你会发现这个jni程序只能在ARM处理器下运行,如下:

Android(java)学习笔记261:JNI之编写jni程序适配所有处理器型号

 如果我们让上面的程序运行在x86模拟器上,处理平台不对应,报如下错误:

03-29 03:09:25.378: E/AndroidRuntime(1379): at dalvik.system.NativeStart.main(Native Method)
03-29 03:09:25.378: E/AndroidRuntime(1379): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load myadd: findLibrary returned null

那该怎么办呢?

2. 步骤如下:

(1)在工程目录下,jni文件夹下创建一个Application.mk文件,如下:

Android(java)学习笔记261:JNI之编写jni程序适配所有处理器型号

里面的内容该怎么写呢?

在android-ndk-r9c\docs\查看文档APPLICATION-MK.html,如下:

Android(java)学习笔记261:JNI之编写jni程序适配所有处理器型号

打开APPLICATION-MK.html,如下:

Android(java)学习笔记261:JNI之编写jni程序适配所有处理器型号

(2)在该文件中加:

                       APP_ABI := all 就可以生成,所有平台对应的.so文件

                       APP_ABI := armeabi  armeabi -v7a  x86 mips

如下:

Android(java)学习笔记261:JNI之编写jni程序适配所有处理器型号