Bad method handle type 7异常解决

在利用androidx版本写demo时,在添加了一些依赖后,遇到了java.lang.ClassNotFoundExceptionbug,这就很奇怪了,我就添加rxjava3的依赖,就给我报这个错误。

添加的依赖如下:

implementation 'io.reactivex.rxjava3:rxjava:3.0.0'

具体报错如下:

在这里插入图片描述

第一反应是先看Error部分的提示,这里提示找不到dex文件中找不到自定义的Application类,所以优先排查mutildex相关问题。查了半天毫无头绪,我的配置也没问题。

只能扩大排查范围,看下logcat中崩溃处的其他异常信息,上图中的黄色部分的Warning信息:

W/zygote64: Failure to verify dex file '/data/app/com.xxx.app-wr25p09u-u7SF8Gc1TW8qg==/base.apk': Bad method handle type 7
W/ResourceType: No package identifier when getting name for resource number 0x00000000

根据Bad method handle type 7这个信息进行排查,找到了解决方式。具体如下:

在app/build.gradle文件的android闭包内,添加如下代码:

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

sync运行一气呵成,奈斯。

这个错误出现的原因是,我引入的rxjava3用到了java8的特性,需要手动配置下。

参考

Failed to verify dex: Bad method handle type 7

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章