0

我的设置:
- Android Studio 1.5
- Android NDK-r10e
- 实验插件 0.4.0

我尝试在网上遵循很多关于在 Android Studio 中编译本机代码的教程,但我遇到了一个问题:包括 .so 文件。

我需要在我的代码中使用 GMP 和 OpenSSL。我尝试添加#include <gmp.h>github提供的示例 hello-jni 代码,以测试我的 C 代码是否可以读取 .so 文件,但它返回错误:

gmp.h:没有这样的文件或目录

这是我的文件夹结构(我首先尝试针对 x86 进行编译)

文件夹结构

这样做的正确方法是什么?

4

2 回答 2

0

您需要分别保存.so文件和头文件.h。在该jniLibs文件夹下,只.so需要文件。将头文件jni/headers单独保存在文件夹下并从该文件夹访问它们。此外,您不需要在文件夹.a下包含文件jniLibs

jni source dir在 gradle build 文件下添加头文件路径。访问头文件#include "gmp.h"double quotes而不是angle brackets在本地用户路径中搜索。

于 2016-01-06T08:24:54.330 回答
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())
    }
}
于 2016-01-06T11:43:35.850 回答