Application.mk 被 Android Studio 忽略

问题描述 投票:0回答:4

我想将 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 吗?

谢谢

android android-ndk
4个回答
5
投票

目前似乎不支持在 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


3
投票

对于 Gradle 2.5,它应该如下所示:


    android.ndk {
        模块名称 = "应用程序"
        stl =“stlport_static”
    }


1
投票

对于 Gradle 4.4: 添加

path 'jni/Application.mk'

到应用程序级别 build.gradle 解决了我的问题。应该是这样的

externalNativeBuild {
    ndkBuild {
        path 'jni/Android.mk'
        path 'jni/Application.mk'
    }
}

然后 Android Studio 检查您的 Application.mk 文件。

我的文件夹结构是这样的


0
投票

就我而言,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')
        }
© www.soinside.com 2019 - 2024. All rights reserved.