我使用的是Android Studio 1.5.1和android-ndk-r10e 在我编写一些C ++ 11代码并尝试使用android-ndk-r10e编译一些C ++ 11代码之前,该应用程序运行良好。
#include <jni.h>
extern "C" JNIEXPORT jstring JNICALL Java_com_example_myapplication60_MainActivity_getStringFromNative
(JNIEnv *, jobject);
在我将-std = c ++ 11添加到app build.gradle
之后apply plugin: 'com.android.application'
android { compileSdkVersion 23 buildToolsVersion“23.0.2”
defaultConfig {
applicationId "com.example.myapplication60"
minSdkVersion 23
targetSdkVersion 23
versionCode 1
versionName "1.0"
ndk{
moduleName "libJniTest"
ldLibs "log"
abiFilters "armeabi-v7a"
cFlags "-std=c++11"
stl "gnustl_static"
}
}
sourceSets{
main{
jniLibs.srcDirs=[]
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}...
然后,IDE告诉我它找不到jni.h
答案 0 :(得分:1)
答案 1 :(得分:0)
sourceSets.main.jni.srcDirs = []
将其设置为模块build.gradle
,它可以帮助我。
答案 2 :(得分:0)
尝试添加到您的gradle.build。糟糕的方式,但它的确有效。
module {
android.ndk {
cppFlags.add("-I" + file("<path-to-your-ndk>/platforms/android-19/arch-mips/usr/include").absolutePath)
}
}