找不到参数的方法 cppFlags() arguments()
Could not find method cppFlags() arguments() for arguments
我正在尝试使用
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 中有两个完全不同的块,名为 externalNativeBuild(感谢,Google) .
One 在 android top-level 块下,它指定了本地构建脚本的路径,cmake 或 ndkBuild(但不是两者)。
other can be used to specify, from gradle, some parameters for the native build. This block is usually a child of the defaultConfig block, but can also appear for flavors (see an ).
这些externalNativeBuild块也可以有cmake或ndkBuildchildren , 但只有匹配 path 设置(见上文)的 child 是相关的,其他的被忽略。
最重要的是,将您的块一分为二,并将每个块放在 build.gradle 层次结构中的正确位置。
我正在尝试使用
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 中有两个完全不同的块,名为 externalNativeBuild(感谢,Google) .
One 在 android top-level 块下,它指定了本地构建脚本的路径,cmake 或 ndkBuild(但不是两者)。
other can be used to specify, from gradle, some parameters for the native build. This block is usually a child of the defaultConfig block, but can also appear for flavors (see an
这些externalNativeBuild块也可以有cmake或ndkBuildchildren , 但只有匹配 path 设置(见上文)的 child 是相关的,其他的被忽略。
最重要的是,将您的块一分为二,并将每个块放在 build.gradle 层次结构中的正确位置。