NDK官网:https://developer.android.google.cn/ndk/index.html

NDK下载地址:https://developer.android.google.cn/ndk/downloads/

NDK in Github: https://github.com/googlesamples/android-ndk

NDK相关文章

1.Android JNI(一)——NDK与JNI基础

    1.2 Android JNI学习(二)——实战JNI之“hello world”

    1.3 Android JNI学习(三)——Java与Native相互调用

    1.4 Android JNI学习(四)——JNI的常用方法的中文API

    1.5 Android JNI学习(五)——Demo演示

 2. Android NDK 从入门到精通(汇总篇)

实际遇到的问题:

开发工具:AndroidStudio3.4.2

CMake版本:3.10.2

Studio插件:NDK(版本:20.0),LLDB,CMake

 1. javah 找不到 类文件

     ① 打开 Terminal,执行 cd D:\workspaces\android\Test\NDKDemo2\app\src\main\java\com\chb\ndkdemo2 进入到java文件所在目录;

     ②执行 javac NDKTools.java,生成NDKTools.class。

     ③(重要)NDKTools.class 不能和NDKTools.java在同一目录下,将 NDKTools.class移动到另一个目录下,比如:D:\workspaces\android\Test\NDKDemo2\app\src\main\class\com\chb\ndkdemo2,其中 com\chb\ndkdemo2 为NDKTools.java 所在的包名对应的路径,不能修改!

     ④ Terminal 切换到 main文件夹(即class文件夹的上一级)下,执行 javah -classpath class com.chb.ndkdemo2.NDKTools   或者 在任意目录下执行     javah  -classpath  D:\workspaces\android\Test\NDKDemo2\app\src\main\class  com.chb.ndkdemo2.NDKTools   ,生成的 com_chb_ndkdemo2_NDKTools.h 文件在执行 javah命令时所在的目录。

     ⑤ 指定 .h文件生成路径,使用javah -d 路径

          如:  javah  -d  D:\workspaces\android\Test\NDKDemo2\app\src\main\jni -classpath  D:\workspaces\android\Test\NDKDemo2\app\src\main\class  com.chb.ndkdemo2.NDKTools 或者  当你在java文件夹目录下,使用 javah  -d  ../jni  -classpath  D:\workspaces\android\Test\NDKDemo2\app\src\main\class  com.chb.ndkdemo2.NDKTools 将在java的上级目录main下面的jni文件夹生成 com_chb_ndkdemo2_NDKTools.h文件,

 Tips:配置javah快捷键:

    配置 Anroid Studio 外部工具,一劳永逸,往后无需命令行,File->Setting->Tools->External Tools->“+”进入页面

 

Program:$JDKPath$\bin\javah.exeArguments:-classpath . -jni -d $ModuleFileDir$\src\main\jni $FileClass$Working directory:$ModuleFileDir$\src\main\Java

注释:
-classpath classes 指明类所在的位置

-jni com.jni.jnitest.JNITest 类的绝对路径

-d 产生的.h文件放到指定目录下;
开始生成.h文件,选中JNI类右键->New->External Tools->javah,如图

 

2. 修改so存放路径

   默认路径为:app\build\intermediates\cmake\debug\obj,按照网上提供的方法:#设置生成的so动态库最后输出的路径
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/../app/src/main/jniLibs/${ANDROID_ABI}),会报错:More than one file was found with OS independent path 'lib/arm64-v8a/libtwo-lib.so  暂时没找到别的办法修改,只能作罢。

3.CMakeList添加子路径 

    

4. 选择编译平台

  可选:arm64-v8a,armeabi-v7a,x86,x86_64

  例如:

  

更多相关文章

  1. Pycharm安装PyQt5的详细教程
  2. NPM 和webpack 的基础使用
  3. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  4. 读取android手机流量信息
  5. android 使用html5作布局文件: webview跟javascript交互
  6. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  7. android“设置”里的版本号
  8. Android开发环境搭建
  9. Android(安卓)Resource介绍和使用

随机推荐

  1. android root权限相关bin程序rageagainst
  2. Android TextView文字链接4中方法
  3. Android 导入Flutter模块
  4. android ARM 汇编学习 —— hello world
  5. android去掉系统默认标题栏
  6. Android 性能优化系列视频(五)
  7. [2011.02.22] Android SDK离线安装
  8. Android(安卓)SDK,ADT,API 版本的对应关
  9. 【游戏语音技术开发互联网公司】android
  10. Android中的Selector