欢迎光临散文网 会员登陆 & 注册

Android 运行中crash, lambda相关方法找不到解决方案

2020-05-28 10:02 作者:功夫程序员  | 我要投稿

接入第三方sdk的过程中,编译是正常的,但是运行报如下错误:

ava.lang.NoSuchMethodError: No static method metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; in class Ljava/lang/invoke/LambdaMetafactory; or its super classes (declaration of 'java.lang.invoke.LambdaMetafactory' appears in /apex/com.android.runtime/javalib/core-oj.jar)at butterknife.Unbinder.<clinit>(Unbinder.java:9)

从图中我们可以看到Lambda关键字。Lambda表达式在jdk 1.8以上才支持,Android Studio默认用jdk 1.7编译。因此,我们要在Android Studio 的app/build.gradle中设置编译使用的jdk版本。

在android 的作用域下加上如下代码:

android {

compileOptions {

sourceCompatibility JavaVersion.VERSION_1_8

targetCompatibility JavaVersion.VERSION_1_8}

}

然后sync后再次编译运行即可。


Android 运行中crash, lambda相关方法找不到解决方案的评论 (共 条)

分享到微博请遵守国家法律