Android studio 编译.so文件生成 No rule to make target

版权声明:本文为博主原创文章,未经博主允许不得转载。 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文件

只要记住一点  一定要注意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 , 编译

吐槽一下这个编辑器真坑

猜你喜欢

转载自blog.csdn.net/qq_26464451/article/details/80829652