gpt4 book ai didi

java - Codename One 中带有 lambda 的 Android native 代码无法正常工作

转载 作者:行者123 更新时间:2023-11-30 00:51:56 25 4
gpt4 key购买 nike

我使用代号 One 构建的应用程序具有相机预览功能。我需要求助于 native 接口(interface)实现(目前为 Android)来显示此预览。在某些(较旧的)Android 设备上,我还需要调用 Camera.autofocus(AutofocusCallback) 来进行清晰的预览。

Android studio 建议我使用 lambda 表达式来定义回调:

mCamera.autoFocus((b, camera) -> Log.d(TAG, "Camera may have focused"));

当我调试我的项目时,它起作用了。

但是,当我在 Codename One 本地接口(interface)实现中复制粘贴这段代码并发送 Android 构建时,构建过程失败并出现以下错误:

error: ')' expected
mCamera.autoFocus((b, camera) -> Log.d(TAG, "Camera may have focused"));
^
error: illegal start of expression
mCamera.autoFocus((b, camera) -> Log.d(TAG, "Camera may have focused"));
^
error: ';' expected
mCamera.autoFocus((b, camera) -> Log.d(TAG, "Camera may have focused"));

为了获得构建,我必须将 lambda 转换为更传统的:

mCamera.autoFocus(new Camera.AutoFocusCallback() {
@Override
public void onAutoFocus(boolean b, Camera camera) {
Log.d(TAG, "Camera may have focused");
}
});

我不能在 native 接口(interface)实现中使用 lambda 而它在代号一代码中完美运行吗?

感谢任何帮助,

最佳答案

Lambda 是 Java 8 的特性。您的代号 one 项目是 Java 8 项目吗?该文档建议您必须通过将 build.xml 中的“源”和“目标”值设置为 1.8 以及设置构建提示 java.version=8 来显式启用 Java 8。还有一些其他建议检查您的 ide 使用的 java 版本: https://www.codenameone.com/blog/java-8-support.html

关于java - Codename One 中带有 lambda 的 Android native 代码无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40886260/

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