我想将 c++ 标头 iostream 包含到我的 NDK 代码中。为此,我必须将 APP_STL := stlport_static (或类似的)包含到 Application.mk 文件中,如 Android ndk-build iostream:没有这样的文件或目录中所述。
如果我使用命令行 ndk-build 进行编译,一切正常,但是在使用 Android Studio 进行编译时,我仍然遇到与 iostream not find 相同的错误。看起来 application.mk 被 Android Studio 忽略了,我不知道如何在 build.gradle 中配置它。 任何人都可以帮助我使用 android studio 包括 APP_STL := stlport_static 吗?
谢谢
目前似乎不支持在 build.gradle 中包含 Application.mk 文件,但是在 build.gradle 的 ndk 部分下添加 stl“stlport_static”效果很好(感谢 Michael 的快速回复)。
在defaultConfig部分下,添加:
ndk {
moduleName "app"
stl "stlport_static"
}
详情请见:https://groups.google.com/forum/#!topic/adt-dev/pHnST37HrlM
对于 Gradle 2.5,它应该如下所示:
android.ndk { 模块名称 = "应用程序" stl =“stlport_static” }
对于 Gradle 4.4: 添加
path 'jni/Application.mk'
到应用程序级别 build.gradle 解决了我的问题。应该是这样的
externalNativeBuild {
ndkBuild {
path 'jni/Android.mk'
path 'jni/Application.mk'
}
}
然后 Android Studio 检查您的 Application.mk 文件。
就我而言,Gradle 8.4,AGP 8.3.0
我必须将“Application.mk”放在“Android.mk”之前,就像这样
ndkBuild {
path file('src/main/wrapper/jni/Application.mk')
path file('src/main/wrapper/jni/Android.mk')
}