【问题标题】:Android Studio + NDK - Import Existing C++Android Studio + NDK - 导入现有 C++
【发布时间】:2015-09-21 13:15:59
【问题描述】:

如何包含在编译中在项目文件树中查看一些.h.cpp文件位于项目目录之外 ?

使用 Visual Studio 和 C++ 项目,您只需使用“添加现有项目”,选择您的文件并瞧瞧,它只需十秒钟即可工作。基于 Android 的开发不应该让开发者的生活更轻松吗? :/

我一直在寻找几个小时现在如何做到这一点。我找到的答案都没有解决这个问题。

我不敢相信,在所有使用带有 NDK 的 Android Studio 的人中,没有一个人在 jni 文件夹之外使用过 C++ 代码...

你知道怎么做吗?谢谢。

【问题讨论】:

标签: android c++ android-studio android-ndk java-native-interface


【解决方案1】:

这就是我所做的。首先安装今天发布的最新的 Android Studio 1.4(但我在第一个 1.3 预览版中使用了 ndk 支持)。 要获得 NDK 支持,您需要切换到 Gradle 2.5(项目结构 -> 项目 -> Gradle 版本)。使用 experimental gradle-plugin(在 main build.gradle "classpath 'com.android.tools.build:gradle-experimental:0.2.0'" 中)。

然后您需要将您的应用程序 build.gradle 文件更新为新格式,如下所述:http://tools.android.com/tech-docs/new-build-system/gradle-experimental

我的项目由静态库和动态库组成。不幸的是,这不受支持,您现在必须将其编译为一个动态库。不支持自定义 makefile。

这是棘手的部分,你需要把它放在模型{}中

android.ndk {
    moduleName = "NativeLib"

    // toolchain = "clang" <- tried using it, but failed
    // toolchainVersion = "3.5"

    stl = "gnustl_static" // you can switch stl lib this way

    ldLibs += "log"
    cppFlags += "-g"
    cppFlags += "-std=c++11" // use c++11
    cppFlags += "-Wall"
    cppFlags += "-I${file("../../../common/include")}".toString() // include folder
}

android.sources {
    main {
        jni {
            source {
                srcDirs = ['src/main/jni', '../../../common']
            }
        }
    }
}

如果您的本地源文件位于其他地方,您可以更改路径 - 这是来自我的项目结构。

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 2017-03-17
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多