java.lang.BootstrapMethodError

使用Retrofit报以下错误,其他框架报这个错误也可以考虑是不是java8新特性引起的

java.lang.BootstrapMethodError: Exception from call site #6 bootstrap method
at okhttp3.internal.Util.(Util.java:87)
at okhttp3.internal.Util.skipLeadingAsciiWhitespace(Util.java:321)
at okhttp3.HttpUrl B u i l d e r . p a r s e ( H t t p U r l . j a v a : 1313 ) a t o k h t t p 3. H t t p U r l . g e t ( H t t p U r l . j a v a : 917 ) a t r e t r o f i t 2. R e t r o f i t Builder.parse(HttpUrl.java:1313) at okhttp3.HttpUrl.get(HttpUrl.java:917) at retrofit2.Retrofit Builder.parse(HttpUrl.java:1313)atokhttp3.HttpUrl.get(HttpUrl.java:917)atretrofit2.RetrofitBuilder.baseUrl(Retrofit.java:492)

解决方法:
在Module下的bulid.gradle->android->defaultConfig下添加

compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }

原因:Okhttp3中使用了java8新特性“方法与构造函数引用”,需要设置jdk版本在1.8以上
查看报错的okhttp3.internal.Util.java可以看到
在这里插入图片描述

CompileOptions的属性:
1.encoding:Java源文件的编码格式
2.incremental:是否应该使用Java编写的Gradle新的增量模型
3.sourceCompatibility:指定编译编译.java文件的jdk版本
4.targetCompatibility:确保class文件与targetCompatibility指定版本,或者更新的java虚拟机兼容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值