Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未找到Android cmake参数方法_Android_Cmake_Android Ndk - Fatal编程技术网

未找到Android cmake参数方法

未找到Android cmake参数方法,android,cmake,android-ndk,Android,Cmake,Android Ndk,我试图为cmake添加参数,以便遵循Android NDK使用地址消除器。因此,在本机模块的build.gradle文件中,我有以下内容: externalNativeBuild { cmake { path "CMakeLists.txt" arguments "-DANDROID_ARM_MODE=arm", "-DANDROID_STL=c++_shared" cppFlags "-fsanitize=

我试图为cmake添加参数,以便遵循Android NDK使用地址消除器。因此,在本机模块的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”方法这个问题的任何其他提及。我用的是Gradle3.4.2


我缺少什么?

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

因此,您需要在适当的对象上设置适当的属性:

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"
        }
    }
}

externalNativeBuild
块位于何处?将它直接放入
android{}
android{defaultConfig{}}
之间有区别(例如,第二个有
参数
属性,而第一个没有)。感谢您修复了它,因为我实际上应该在defaultConfig中添加它。我的问题确实是一个重复的问题,请将此标记为答案。