原生代码Android Studio 1.5和实验插件0.4,包括.so文件

时间:2016-01-06 08:01:39

标签: java android android-studio android-ndk android-studio-import

我的设置:
- 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进行编译)

folder structure

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

2 个答案:

答案 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())
    }
}