gradle3.0以上进行jni调用的时候和之前的版本会略有不同
首先第一步:
首先新建一个工程, 我的工程目录如下:
我本地使用的gradle版本:
app的build.gradle内容如下所示:
android {
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.jni.jnidemo5"
minSdkVersion 26
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
以上就是新建的工程的基本设置, 接下来就是正式开始:
首先在包下新建一个JNINative.java的类用于写native方法
package com.jni.jnidemo5;
public class JNINative {
public native String getString();
}
很简单只有一个获取字符串的方法.
使用javah生成对应的.h文件
具体方法如下: