之前有写过一篇如何导入so库的文章,那个studio0.8的时候用的,并且那个是针对百度地图so,友盟so之类的开发工具用的。如果我们自己生成了so库,那么项目如何使用so库呢?
上一篇我讲了如何在ubuntu下利用ndk,build了ndk提供的测试项目hello-jni,这里将使用这个libhello-jni.so
sudo sh studio.sh
打开studio,新建项目。
这里新建项目是有讲究的,一开始不清楚的情况下,我试过按照自己的喜好命名,发现是出现了这样的错误:
Trying to load lib /data/data/factorytest.android.com/lib/libhello-jni.so 0x42117dc0
Added shared lib /data/data/factorytest.android.com/lib/libhello-jni.so 0x42117dc0
No JNI_OnLoad found in /data/data/factorytest.android.com/lib/libhello-jni.so 0x42117dc0, skipping init
No implementation found for native Lcom/example/hellojni/hellotest;.stringFromJNI:()Ljava/

本文介绍了在Ubuntu环境下,如何在Android Studio中使用通过NDK编译的so库。首先,新建项目时需要注意项目的命名以避免错误。接着,通过修改app的gradle文件,将jniLibs文件夹添加到项目中,并在armeabi目录下放置so库。在Java类中调用C函数时,需要遵循JNI的命名规则,确保Java方法名与JNI方法名的对应。如果遇到找不到JNI_OnLoad的错误,可能是因为Java类名与C代码不匹配,需要调整命名。最后,展示了成功运行并输出"Hello From JNI !"的结果。
最低0.47元/天 解锁文章
954

被折叠的 条评论
为什么被折叠?



