android studio 开发NDK,怎么使用第三方的C++代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android studio 开发NDK,怎么使用第三方的C++代码相关的知识,希望对你有一定的参考价值。
使用AndroidStudio的experimental plugin或是传统的Android.mk,通过jni封装调用第三方动态链接库的方法有共通之处,也有不同之处。http://blog.csdn.net/l465659833/article/details/52318740 参考技术A 装插件
android studio 手把手叫你NDK开发环境搭建及基础使用
一、准备工作
下载NDK: http://dl.google.com/android/repository/android-ndk-r12b-windows-x86_64.zip
二、Android studio 环境配置
路径: File->Setting->看图,还有一个NDK要勾选上。
三、新建项目,看图
四、配置NDK环境
上面三步,建完项目后,会给你建好了demo,demo里有cpp,可以直接跑一边,感受一下。然后,一脸懵逼,出错了。。。。。。。。。。。。。。。。
看下面解决办法
把步骤一种下载好的压缩包解压一下。我是放在AS目录附近。随便放,你能找到就好。
这就配置好环境了。
五、demo跑一跑,能行了。。。。。
总有一个不安分的心,不修改修改怎么能行。
demo是让返回string,我偏偏搞个返回int型,还要自己写个函数体,跑一下。
然后,就直接在MainActivity中写了个native方法。cpp中生成对应方法。然后,调用函数体。跑一下,立马报错
No implementation found for 。。。。。。。。。。。。。。。
这事什么情况?函数体声明过了。AS没有报错和警告,一运行就报错。
然后给出正确代码,你自己领悟:
#include <jni.h> #include <string> extern "C"{ int count(); JNIEXPORT jstring JNICALL Java_com_ailin_shoneworn_ndkdemo_MainActivity_stringFromJNI( JNIEnv *env, jobject /* this */) { std::string hello = "Hello from C++"; return env->NewStringUTF(hello.c_str()); } int count(){ int a =1; int b=2; return a+b; } JNIEXPORT jint JNICALL Java_com_ailin_shoneworn_ndkdemo_MainActivity_intFromJni(JNIEnv *env, jobject instance, jint x, jint y) { // TODO return count(); } }
总结: C++已经有太久没用了,很多东西都遗忘了。哎!
上面,只需要在函数体外extend ”C"处加上{ },把两个函数体都括起来就好了。
以上是关于android studio 开发NDK,怎么使用第三方的C++代码的主要内容,如果未能解决你的问题,请参考以下文章
android studio 2.2.2 32位怎么配置ndk cmake环境
Android 逆向Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | Visual Studio 中 SDK 和 NDK 安装位置 )(代码片段
Android 逆向Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(代码