1 android studio建立普通项目。
2. 新建类
NdkJniUtils.java
package com.study.bluesky.helloworld; /** * Created by Administrator on 2017/11/28 0028. */ public class NdkJniUtils { public native String getCLanguageString(); }
切换到 project模式在 app ,src ,main 文件下新建 jni文件夹
之后打开
NdkJniUtils.java文件
选中getCLanguageString 按键盘alt+回车 弹出菜单中选择建立头文件之后在 jni文件中建立JniLibNdkJniUtils.c完成函数体。#include <jni.h> #include "com_study_bluesky_helloworld_NdkJniUtils.h" /* * Class: com_study_bluesky_helloworld_NdkJniUtils * Method: getCLanguageString * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_study_bluesky_helloworld_NdkJniUtils_getCLanguageString (JNIEnv *env, jobject ojb) { return (*env)->NewStringUTF(env,"This just a test for Android Studio NDK JNI developer!"); }3.切换到Anroid模式下build.gradle 下的modules:app下 文件添加android { compileSdkVersion 26 defaultConfig { applicationId "com.study.bluesky.helloworld" minSdkVersion 15 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" ndk { moduleName "JniLibNdkJniUtils" //生成的so名字 abiFilters "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库。目前可有可无。 } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } }红色部分为添加部分gradle.properties文件中添加android.deprecatedNdkCompileLease=15118737785964.build make projects查看 gradle console 编译完成切换到工程模式,app/build/intermediates/ndk/debug/lib/areabi-v7a/libJniLibNdkJniUtils.soapp/build/intermediates/ndk/debug/lib/x86/libJniLibNdkJniUtils.so动态库成了。