我正在尝试在Android中使用Z压缩库。到目前为止,我已经使用NDK设置了Android Studio,示例项目正在顺利进行。一旦我将C文件添加到JNI文件夹,几个头文件就位于各个子文件夹中,并且Android Studio无法包含这些头文件,它说:cannot find 'xxxxx.h'
以前对同一个问题有答案,但许多已经过时且过时。我使用的是Android Studio 2.1.3,这是我的应用的build.gradle
文件:
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 23
buildToolsVersion = '23.0.2'
defaultConfig {
applicationId = 'com.example.hellojni'
minSdkVersion.apiLevel = 4
targetSdkVersion.apiLevel = 23
}
/*
* native build settings: taking default for almost everything
*/
ndk {
moduleName = 'hello-jni'
toolchain = 'clang'
stl "stlport_shared"
CFlags.addAll(['-Wall'])
}
buildTypes {
release {
minifyEnabled = false
proguardFiles.add(file('proguard-rules.txt'))
}
}
productFlavors {
// for detailed abiFilter descriptions, refer to "Supported ABIs" @
// https://developer.android.com/ndk/guides/abis.html#sa
create("arm") {
ndk.abiFilters.add("armeabi")
}
create("arm7") {
ndk.abiFilters.add("armeabi-v7a")
}
create("arm8") {
ndk.abiFilters.add("arm64-v8a")
}
create("x86") {
ndk.abiFilters.add("x86")
}
create("x86-64") {
ndk.abiFilters.add("x86_64")
}
create("mips") {
ndk.abiFilters.add("mips")
}
create("mips-64") {
ndk.abiFilters.add("mips64")
}
// To include all cpu architectures, leaves abiFilters empty
create("all")
}
}
}
我试过了:
cFlags += "-I" + file("src/main/jni/").absolutePath
stl "stlport_shared"
基于其他答案,但没有人确实解决了这个问题。如果有人之前已经解决了同样的错误,请帮助我。
答案 0 :(得分:0)
假设我有一个名为Project的文件夹,它包含两个文件夹,其中包含类似命名的标题foo / foo.h和bar / bar.h。 Foo想要..
bar.h,但它不能在它的当前文件范围内执行此操作。它必须将一个目录放在Project后面。为此,可以使用通用符号#include "../bar/bar.h"
:
#include
故事的道德:文件夹名称在meteor
声明中完全合理。