我在 Main.cpp 文件中有一个 JNI 调用,形如:
JNIEXPORT jstring JNICALL
Java_packagename_MainActivity_GenerateAlphabet(JNIEnv *env, jobject thiz)
{
generateAlphabet([](string letters, string numbers) {
return (env)->NewStringUTF("test");
});
}
但是这段代码给我报错:
jni/Main.cpp: 在 lambda 函数中:
jni/Main.cpp:86:33: 错误:未捕获 'env'
我真的需要在 lambda 函数中使用 env,有人能帮帮我吗。
编辑:
被接受的答案解决了这个问题,但请记住,你不能在 lambda 表达式中返回一个值。
generateAlphabet
做了什么(很可能它不涉及线程),否则你不能说这是一个坏主意。 - user253751std::sort
的比较器中使用env
吗?还是直接捕获它? - user253751