在Android Studio中与外部C++源代码一起使用NDK

Using NDK in Android Studio with outside C++ sources

本文关键字:一起 源代码 NDK C++ 外部 Android Studio      更新时间:2023-10-16

到目前为止,我已经在Android Studio中尝试使用NDK,编写了Java Wrapper,生成了头文件,并在JNI文件夹中相应的c++文件中填充了一些函数。

我现在想做的是进行一个简单的构建,这样我就可以验证事情是否有效。我的项目依赖于位于我整个android项目之外的一些c++源文件。我是否以某种方式从Android中构建这些源文件?如何访问它们?格雷德尔有什么需要我做的吗?

我对跨多个来源构建项目非常陌生,所以我不知道该怎么办。如果问题没有意义,我深表歉意。非常感谢您的帮助(:

http://ph0b.com/android-studio-gradle-and-ndk-integration/

用户ph0b在NDK上有许多SO帖子。

阅读此人在subj(AS+NDK)上的各种帖子

IMO-你可以遵循策略'import NDK proj'从用于eclipse/NDK android项目和AS 0.8.+的src dirs将让你几乎所有的方法与正常的"文件/导入项目"对话框。

AS导入完成后,NDK内容将位于:

/root/module/src/main/jni

Java软件包将在

/root/module/src/main/java

验证导入到AS没有对您输入到导入过程的"Android.mk"文件进行自动更新,因为您需要它,而不是来自AS.的任何自动生成文件

在AS grade.build文件中。。。

确保

buildToolsVersion"19.1.0"

并根据前面的链接添加以下内容:

   ndk {
        moduleName "audioboo-ogg"
    }
}
flavorDimensions "abi"
productFlavors {
    x86 {
        ndk {
            abiFilter "x86"
        }
    }
    armv7 {
        ndk {
            abiFilter "armeabi-v7a"
        }
    }
}
sourceSets {
    main {
        jni.srcDirs = [] /*disable automatic ndk-build call */
    }
}
task ndkBuild(type: Exec) {
    commandLine '$NDK_HOME/android-ndk-r9[a-z]/ndk-build', '-C', file('src/main/jni').absolutePath
}
tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn ndkBuild
}

然后,您可以选择在jni文件夹中进行CLI NDK构建,或者只使用gradle集成构建,该构建将使用gradle文件中的"ndkBuild"任务。