Android Studio + NDK - 导入现有的C++

Vir*_*721 6 c++ java-native-interface android android-ndk android-studio

我既如何在编译包括项目文件树视图部分.h.cpp文件位于项目目录外

使用Visual Studio和C++项目,您只需使用"添加现有项目",选择您的文件并vo,它只需十秒钟即可完成.基于Android的开发是否应该让开发人员的生活更轻松?:/

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

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

你知道怎么办?谢谢.

ser*_*ine 4

这就是我所做的。首先安装今天发布的最新 Android Studio 1.4(但我使用了 ndk 支持的第一个 1.3 预览版)。要获得 NDK 支持,您需要切换到Gradle 2.5(项目结构 -> 项目 -> Gradle 版本)。使用实验性 gradle-plugin(在主 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。

这是棘手的部分,您需要将其放入 model { } 中

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']
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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