android studio ndk编程 配置

来源:互联网 发布:展uv软件 编辑:程序博客网 时间:2024/05/18 01:10

参考:http://blog.csdn.net/ashqal/article/details/21869151
1.

模块的目录结构

这里写图片描述
jni的文件目录可以通过这里写图片描述

java/Native.java

package com.example.administrator.mylibrary;/** * Created by Administrator on 2015/5/13. */public class Native {    public static native String getStr();    static {        System.loadLibrary("mylibrary");    }}

通过javah生成头文件

javah -jni *

/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_example_administrator_mylibrary_Native */#ifndef _Included_com_example_administrator_mylibrary_Native#define _Included_com_example_administrator_mylibrary_Native#ifdef __cplusplusextern "C" {#endif/* * Class:     com_example_administrator_mylibrary_Native * Method:    getStr * Signature: ()Ljava/lang/String; */JNIEXPORT jstring JNICALL Java_com_example_administrator_mylibrary_Native_getStr  (JNIEnv *, jobject);#ifdef __cplusplus}#endif#endif

实现的cpp文件

#include "com_example_administrator_mylibrary_Native.h"JNIEXPORT jstring JNICALL Java_com_example_administrator_mylibrary_Native_getStr  (JNIEnv * env, jobject obj){    return env->NewStringUTF("native");  }

jni/empty.c
是个空文件,不添加会有问题
http://stackoverflow.com/questions/29122903/ndk-is-not-configured-issue-in-android-studio

配置ndk路径

这里写图片描述
sdk.dir=d:\Users\Administrator\AppData\Local\Android\sdk
ndk.dir=F:\adt-bundle-windows-x86-20140624\android-ndk-r10d

主项目 引入子模块

这里写图片描述

运行

示例下载
http://pan.baidu.com/s/1o6EAIEm

延伸

1、手动配置生成的android.mk
这里写图片描述

子模块的build.gradle 在debug realease下添加ndk

apply plugin: 'android-library'android {    compileSdkVersion 19    buildToolsVersion "19.0.1"    defaultConfig {        minSdkVersion 7        targetSdkVersion 16        versionCode 1        versionName "1.0"    }    release {        runProguard false        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'        ndk {            moduleName "jnimain"            abiFilters "armeabi", "armeabi-v7a"        }    }    debug {        ndk {            moduleName "jnimain"            abiFilters "armeabi", "armeabi-v7a"        }    }}dependencies {    compile 'com.android.support:appcompat-v7:+'}

2.cpp代码没提示
不知如何解决

0 0
原创粉丝点击