Retrofit报错java.lang.NoSuchMethod

2020-05-27  本文已影响0人  晚路歌

log信息:

 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.breeze.diy.retrofit.demo, PID: 12841
    java.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)

解决方法:

确认项目minSdkVersion至少为21,并且Android Gradle插件版本至少为3.2。
还需要将Java版本设置为1.8*或更高版本。***我们现在在源代码中使用Java 8功能(是lambdas!),这可以让Android的编译器来处理它:

  compileOptions {  
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }  
上一篇下一篇

猜你喜欢

热点阅读