Lambda表达式不受支持 -source 1.7(Android Studio)

5

我想在Android Studio中运行我的安卓项目,但是我无法这样做。

我遇到了以下错误:

Error:(23, 47) error: lambda expressions are not supported in -source 1.7
(use -source 8 or higher to enable lambda expressions)
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.

我正在使用JDK 1.8。

这是为什么呢?有任何解决方法吗?

PS:在Stack中有几个类似的问题,但都没有解决这个问题。请在标记重复之前了解问题。


因为这个答案,将其作为重复关闭:_"Android不支持Java 8。它只支持Java 7(如果您有KitKat),并且它仍然没有invokedynamic,只有新的语法糖。"_ - nhaarman
2个回答

5

以下是解决方案:

Android无法在JDK 1.8上构建; 而Lambda表达式不能在低于1.8版本的JDK中使用。

解决方法是回到JDK 1.7并避免使用Lambda符号。 不要使用以下形式:

button.setOnClickListener((v) -> {


                    Intent newIntent = new Intent(MainActivity.this, NextActivity.class);
                    MainActivity.this.startActivity(newIntent);
                }
            });

我们需要使用这个:

       button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                Intent newIntent = new Intent(MainActivity.this, NextActivity.class);
                MainActivity.this.startActivity(newIntent);
            }
        });

-2

看起来你需要将-source 8作为编译器的参数传递。


我该如何设置编译器参数? - kishoredbn
看一下这个链接...https://dev59.com/YGAg5IYBdhLWcg3wrMh4 - user2260040
我的偏好设置与Windows中的不同,链接中显示的也没有帮助我多少。我正在使用Mac。 - kishoredbn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接