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. 新媒体运营有什么优势?新媒体运营适合哪些
  2. android下eclipse中的Logcat 查看system.
  3. Android(安卓)获取运营商信息(完整版)-解决
  4. Android(安卓)开发环境的搭建
  5. Android之ContentProvider(数据共享)
  6. android中的隐式intent跟显式intent的使
  7. Android的Fragment中onActivityResult不
  8. android基础知识13:AndroidManifest.xml文
  9. Android应用开发学习笔记之菜单
  10. 利用Dumpsys做系统诊断