Android Studio3.0,在原有项目中进行ndk配置

原创 2018年04月17日 20:43:44

在Android Studio 3.0的IDE环境下,对原有项目,进行ndk配置。

首先配置app目录下的gradle

android {
    defaultConfig {
        applicationId "com.heiko.ndkbaby"
        //...

        externalNativeBuild {
            cmake {
                cppFlags ""
            }
        }
    }
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
}  

接着,在app/scr/main/目录下,新建cpp文件夹,并新建.c.cpp文件。

我此处,我们新建一个beta.c文件,并编写一个方法。
方法名遵循Java_com_包_名_java类名_java方法名(JNIEnv *env,jobject instance)
或者
Java_com_包_名_java类名_java方法名(JNIEnv *env,jclass cls)

#include <jni.h>  

JNIEXPORT jstring JNICALL
Java_com_heiko_ndkbaby_MainActivity_stringFromC(JNIEnv *env, jobject instance){
    return (*env) -> NewStringUTF(env,"hello NDK From C");
}  

其中,jobject和jclass的区别在于,jobject,表明这个函数是一个实例方法,指向这个实例;而jclass,表明是个静态方法,指向这个类的class

接着,在app模块下,新建一个CMakeLists.txt文件

cmake_minimum_required(VERSION 3.4.1)

add_library( # 文件名
             beta

             # 将库设置为共享库
             SHARED

             # 源文件的相对路径
             src/main/cpp/beta.c )  

最后,再Java中进行调用

public class MainActivity extends AppCompatActivity {
    private Button btn1;

    static{
        System.loadLibrary("beta");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn1 = (Button)findViewById(R.id.btn_1);
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                btn1.setText(stringFromC());
            }
        });
    }

    public native String stringFromC();
}  

运行程序,点击按钮后,我们会发现,Button的文字更改为了hello NDK From C

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/EthanCo/article/details/79980498

Android studio3.0之后的ndk配置

1.首先在main文件夹先创建cpp文件夹,创建CMakeLists.txt和一个.cpp的文件2.在build.gradle文件中defaultConfig下面配置如下:ndk { abiF...
  • guibao513
  • guibao513
  • 2018-01-02 15:24:38
  • 786

androidstudio3.0开发ndk

1.配置ndk环境 2.先写调用c代码的java代码 public class NDKTest { static { System.loadLibrary("myLib");...
  • B1ueKid
  • B1ueKid
  • 2017-11-13 17:41:51
  • 2717

AndroidStudio3.0开发调试安卓NDK的C++代码

一、新建项目新建项目,没有发现Include C++ Support 选项。因为印象中是有过该选项的,找了半天没找到。后来无意间拖了下窗口大小,原来是被隐藏了,真特么坑。新建一个测试项目,勾选Incl...
  • asmcvc
  • asmcvc
  • 2017-12-01 19:33:50
  • 2901

环境配置之Android Studio开发NDK

转载请注明出处:http://blog.csdn.net/qiujuer/article/details/42040963 NDK 开发哪家强?XX XX 找 Blue Fly. ...
  • Working_Harder
  • Working_Harder
  • 2016-09-16 18:20:55
  • 4740

Android Studio的NDK环境配置

Android Studio1.3版本开始了对NDK开发的支持,研究了一下环境的配置,记录一下 1.首先需要把Android Studio更新到1.3以上的版本 2.将 gradle更新到2....
  • qwe380948730
  • qwe380948730
  • 2015-11-16 17:38:55
  • 4022

Mac 下android studio 中ndk 环境配置

1.下载NDK gradle.properties 中配置 android.useDeprecatedNdk=true build.gradle 中 defaultC...
  • mingtiannihao623
  • mingtiannihao623
  • 2017-09-03 12:11:16
  • 323

Android Studio 2.2 在已有项目中添加NDK

1、加载库与编写native方法 2、在Terminal命令窗口下进入到java文件夹,执行如下命令:javah  包名.类名,生成头文件。 3、在项目的main文件夹下新建一个cpp文件...
  • u011247942
  • u011247942
  • 2017-07-16 18:28:25
  • 911

Android Studio 3.0 Jni 开发环境配置 ndk cmake编译 多个C/C++文件添加配置

为什么要用cmake?我先说一下cmake的优点: 1.配置简单,只需要一个text文件几句代码即可完成Jni环境配置 2.请看下图: 第一张图是在干什么?debug C/C++代码啊!...
  • m0_37677536
  • m0_37677536
  • 2017-11-17 11:47:02
  • 2297

在Android Studio中NDK环境配置

Android Studio中NDK环境配置 第一种方法: 1.)打开AndroidStudio,选择顶部工具条,Tools->Android -> SDK Manager (需翻墙) ...
  • u012737144
  • u012737144
  • 2016-10-27 11:07:15
  • 8241

Opencv for Android 3.2 + Android Studio 3.0 + ndk-build 实时人脸检测

一、环境搭建 1.Opencv SDK下载地址:https://opencv.org/releases.html; 2.搭建Opencv for Android环境参见:https://www.cnb...
  • paullovazxq
  • paullovazxq
  • 2017-12-07 17:41:38
  • 520
收藏助手
不良信息举报
您举报文章:Android Studio3.0,在原有项目中进行ndk配置
举报原因:
原因补充:

(最多只允许输入30个字)