Android Studio 運行項目報錯:org.objectweb.asm.tree.analysis.AnalyzerException: Execution can fall off

Android Studio項目,公司主要的一個APP項目,還算龐大,有段時間沒過問該項目,有需求要改,又來關注這項目代碼,update代碼到最新,android studio運行項目,就是run不起來啊,clean項目success,rebuild項目success,再run,就會報錯,如下:
error::xxxxxx_trunk:transformClassesWithInstantRunForLeshiDebug FAILED
Error:Execution failed for task ‘:xxxxxx_trunk:transformClassesWithInstantRunForLeshiDebug’.

org.objectweb.asm.tree.analysis.AnalyzerException: Execution can fall off end of the code
Information:BUILD FAILED
這裏寫圖片描述
網上查找各種方案,換gradle版本,升級sdk,sdk相關的tools,無數次的clean->rebuid->run.都沒有成功。找同事幫忙,結果工作筆記本AndroidStudio環境癱瘓了,拿來自己的mac本開發,結果也是運行不起來。問了問同事用的jdk,他用的jdk1.8,而我的都是1.7,我在mac上裝了jdk1.8,歡呼吧,能運行起來。於是猜測可能是jdk版本導致的問題,把自己的工作筆記本恢復系統,重裝開發環境jdk1.8後,也裝了1.7專門來實驗下,果不其然,jdk1.7還是run的時候會報錯,換回1.8就OK。
查了下錯誤中asm到底是啥玩意兒,大概是這樣:
ASM是Java字節碼生成開源框, 是一個 Java 字節碼操控框架。它能夠以二進制形式修改已有類或者動態生成類。ASM 可以直接產生二進制 class 文件,也可以在類被加載入 Java 虛擬機之前動態改變類行爲。ASM 從類文件中讀入信息後,能夠改變類行爲,分析類信息,甚至能夠根據用戶要求生成新類。
解決方案:換成jdk1.8.clean項目->rebuild項目->run就成功了。

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