Android配置 NDK

1.安装NDK(相信大家都会)

2.将下载的NDK目录添加到环境变量里面去

配置正常如上图

3.创建NDKUtils类

public class NDKUtils {
    public native String invokeCmethod();
    static {
        System.loadLibrary("NDKUtils");//导入生成的链接库文件
    }
}

 4.使用控制台 进入当前Android项目的main下

输入 javah -d jni -bootclasspath  C:\Users\mengying\AppData\Local\Android\sdk\platforms\android-27\android.jar;..\..\build\intermediates\classes\debug com.example.mengying.myapplication.NDKUtils

解释引用自http://www.cnblogs.com/xiaoxiaoqingyi/p/6524165.html (这里解释的目录和我的不一样根据位置对于就好了)

这时候这里就出现了jni文件夹(一开始使用的是classpath而不是bootclasspath一直错误)解决方案参考

 

这时候文件里面就会生成一个.h文件 复制他将后缀改为.c

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_magicing_eigenndk_NDKUtils */

#ifndef _Included_com_magicing_eigenndk_NDKUtils
#define _Included_com_magicing_eigenndk_NDKUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_magicing_eigenndk_NDKUtils
 * Method:    invokeCmethod
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_magicing_eigenndk_NDKUtils_invokeCmethod
 (JNIEnv *env, jobject obj){

     return (*env)->NewStringUTF(env,"test");

  }

#ifdef __cplusplus
}
#endif
#endif

添加一个测试代码

 

接下来就是配置文件下的 Android.mk,Application.mk

新建一个文件 命名为 Application.mk里面写上这两句 

APP_PLATFORM := android-27
APP_ABI := x86_64, armeabi-v7a

 同上 新建一个Android.mk

下面的文件名需要根据自己的工程进行修改

LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := NDKUtils
LOCAL_SRC_FILES := com_example_mengying_myapplication_NDKUtils.c
include $(BUILD_SHARED_LIBRARY)

 然后在控制台输入命令 ndk-build

生成.so 文件

在这里加上这个

 

    sourceSets{
        main{
            jni.srcDirs = [] // disable automatic ndk-build call, which ignore our Android.mk
            jniLibs.srcDir 'src/main/java/libs'
        }
    }

实例化一下: 

 

然后运行一下

之前输入显示中文还报错input is not valid Modified UTF-8: illegal start byte 0xa0

重新配置才解决问题。

这样ndk算是配置完成了。

 

ps::这个名字有命名要求可以直接将下面的错误提示复制过来即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值