gpt4 book ai didi

android - 找不到参数的方法 cppFlags() arguments()

转载 作者:可可西里 更新时间:2023-11-01 16:26:44 33 4
gpt4 key购买 nike

我正在尝试使用

std::function

但是编译器报错

Error:(50, 10) error: no type named 'function' in namespace 'std'

我试过修改build.gradle文件

externalNativeBuild {
ndkBuild {
path "src/main/jni/Android.mk"
}
cmake {
cppFlags "-std=c++11"
arguments "-DANDROID_STL=gnustl_static"
path 'src/main/jni/CMakeLists.txt'
}
}

但它不接受path 以外的参数并抛出以下错误

Error:(28, 0) Could not find method arguments() for arguments [-DANDROID_STL=gnustl_static] on object of type com.android.build.gradle.internal.dsl.CmakeOptions.

请帮助我能够使用

std::function

更新

感谢 @Alex Cohn 我能够配置标志和参数,现在我的文件看起来像那样

apply plugin: 'com.android.library'

android {
compileSdkVersion 25
buildToolsVersion '26.0.2'

defaultConfig {
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
arguments "-DANDROID_STL=gnustl_static"
}
}
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
/* ndkBuild {
path "src/main/jni/Android.mk"
}*/
cmake {
// cppFlags "-std=c++11"
//arguments "-DANDROID_STL=gnustl_static"
path 'src/main/jni/CMakeLists.txt'
}
}
}

dependencies {
compile 'com.android.support:support-annotations:25.0.1'
}

最佳答案

build.gradle 中有两个完全不同的 block ,名为 externalNativeBuild(感谢 Google)。

Oneandroid 顶级 block 下,它指定本地构建脚本、cmakendkBuild(但不是两者)的路径。

other可用于从 gradle 指定 native 构建的一些参数。此 block 通常是 defaultConfig block 的子 block ,但也可以出现在 flavors 中(参见 example)。

这些externalNativeBuild block 也可以有cmakendkBuild child ,但只有匹配路径 的 child 设置(见上文)是相关的,另一个被默默地忽略。

最重要的是,将您的 block 一分为二,并将每个 block 放在 build.gradle 层次结构中的正确位置。

关于android - 找不到参数的方法 cppFlags() arguments(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47370186/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com