版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26464451/article/details/80829652
之前有接触过jni相关的一些东西,今天趁着时间,自己做了一下编译jni的环境搭建。没想到遇到各种问题,下面将问题给拿出来做个记录,以后好避免这些问题。
1、首先我是通过编写.mk文件去编译.so文件的,而不是现在的Cmake去编译.so。
2、我由于之前一直有在网上看jni如果编译.so ,发现有的网友朋友说 .so可以直接通过gradle可以编译出来,我不知道他们是怎么弄的,我反正没有成功。最后还是通过gradle和.mk文件结合的生成成功。
步骤:1、你需要搭建ndk环境,然后配置ndk-build命令
2、环境搭建完成后,创建一个java文件,随便写一个native方法
然后在AS Terminal命令行通过javah 创建一个相应的.h文件
而后全部复制该文件的代码,创建一个新的.c或者.cpp文件
后面的 我们可以开始编译Android.mk文件 和 Application.mk文件
扫描二维码关注公众号,回复:
4577785 查看本文章
只要记住一点 一定要注意mk文件的格式,这个东西贼几把坑,我之前一直编译
LOCAL_PATH: = $(call my-dir)然后就这样一句话,一直
No rule to make target
这个错误,也不知道哪里出的问题 ,后来我就复制网上.mk文件第一句话,然后编译通过了,通过了 ,卧槽,比较一下才知道空格的问题,卧槽。
LOCAL_PATH := $(call my-dir)
Application.mk:
APP_ABI := all APP_PLATFORM := android-14
Android.mk:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := test LOCAL_SRC_FILES := jniutils_JniUtils.c include $(BUILD_SHARED_LIBRARY)
最后 build.gradle:
然后命令行ndk-build , 编译
吐槽一下这个编辑器真坑