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

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