【问题标题】:Android cmake arguments method not found [duplicate]找不到Android cmake参数方法[重复]
【发布时间】:2019-12-13 02:58:26
【问题描述】:

我正在尝试向 cmake 添加参数,以便遵循 Android NDK instructions 使用地址清理程序。因此,在本机模块的 build.gradle 文件中,我有以下内容:

externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
            arguments "-DANDROID_ARM_MODE=arm", "-DANDROID_STL=c++_shared"
            cppFlags "-fsanitize=address -fno-omit-frame-pointer"
        }
    }

当我尝试同步我的项目(Android Studio v. 3.4.2,Win10)时,我收到错误消息:

错误:未找到 Gradle DSL 方法:'arguments()'

我在网上搜索过,但找不到任何关于“arguments”方法的其他提及此问题的内容。我正在使用 gradle 3.4.2。

我错过了什么?

【问题讨论】:

  • 这个externalNativeBuild 块在哪里?将其直接放入 android {} 和将其放入 android { defaultConfig {}} 之间是有区别的(例如,第二个有 arguments 属性,而第一个没有)。
  • 感谢这个修复它,因为我实际上应该将它添加到 defaultConfig 中。我的确实是一个重复的问题

标签: android cmake android-ndk


【解决方案1】:

有两个不同的 Gradle DSL 对象,它们都命名为 externalNativeBuild,但具有不同的属性。见thisthis

所以你需要在合适的对象上设置合适的属性:

android {
    defaultConfig {
        externalNativeBuild {
            cmake {
                arguments "-DANDROID_ARM_MODE=arm", "-DANDROID_STL=c++_shared"
                cppFlags "-fsanitize=address -fno-omit-frame-pointer"
            }
        }
    }

    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
}

【讨论】:

  • 请将此标记为答案。
猜你喜欢
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多