我的设置:
- Android Studio 1.5
- Android NDK-r10e
- 实验插件0.4.0
我尝试在Android Studio中编写有关本机代码的大量教程,但我遇到了一个问题:包括.so文件。
我需要使用GMP&amp;我的代码中的OpenSSL。我尝试将#include <gmp.h>
添加到github提供的示例hello-jni代码中,以测试我的C代码是否可以读取.so文件,但它返回错误:
gmp.h:没有这样的文件或目录
这是我的文件夹结构(我尝试首先针对x86进行编译)
这样做的正确方法是什么?
答案 0 :(得分:0)
您需要分别保留.so
个文件和标头文件.h
。在jniLibs
文件夹下只需要.so
个文件。将头文件分别保存在jni/headers
文件夹下,并从该文件夹中访问它们。此外,您不需要在.a
文件夹下包含jniLibs
个文件。
在gradle构建文件中的jni source dir
下添加头文件路径。使用#include "gmp.h"
而不是double quotes
访问angle brackets
之类的标头文件,以便在本地用户路径中进行搜索。
答案 1 :(得分:0)
您需要在 build.gradle 文件中指定包含路径,有关详情,请参阅http://tools.android.com/tech-docs/new-build-system/gradle-experimental#TOC-Ndk-Integration
model {
android.ndk {
moduleName = "hello-jni"
def jniLibs = file("app/src/main/jniLibs/x86").getAbsolutePath()
println(file("app/src/main/jniLibs/x86/gmp.h").exists())
CFlags.add("-I$jniLibs".toString())
}
}