【Android】Android studio調(diào)試源碼版本不對(duì)應(yīng)問(wèn)題

? ? 對(duì)于Android studio調(diào)試的時(shí)候,我們經(jīng)常會(huì)需要debug到源碼內(nèi)部,這個(gè)時(shí)候經(jīng)常會(huì)出現(xiàn)debug位置與源碼行號(hào)對(duì)應(yīng)不上的問(wèn)題,這是因?yàn)槲覀兪褂玫臏y(cè)試設(shè)備中的系統(tǒng)版本與我們AndroidStudio中使用的SourceCode的版本不一致導(dǎo)致的。比如我們使用的是6.0的設(shè)備,而Android Studio錯(cuò)誤地識(shí)別并使用了版本為8.0的SourceCode,就會(huì)出現(xiàn)這個(gè)問(wèn)題。我們從google? Issue Tracker可以知道,該問(wèn)題是已知bug:https://issuetracker.google.com/issues/37058409

? ? 據(jù)說(shuō)官方說(shuō),這個(gè)問(wèn)題很早就已經(jīng)解決了,但是實(shí)際上我們現(xiàn)在能下載到的版本依舊存在該問(wèn)題(筆者目前的版本 Android Studio 3.0.1)。目前有兩種方案可以暫時(shí)解決這個(gè)問(wèn)題。

1. 偷梁換柱:將SourceCode人為替換掉

? ? 我們可以在我們的SDK目錄下找到 sources目錄,這里面存放的是我們所下載的各個(gè)系統(tǒng)版本的源碼資源,找到發(fā)生錯(cuò)誤的源碼資源,再用正確的資源替換掉。比如針對(duì)我們上面6.0(API 23)系統(tǒng)被錯(cuò)誤使用8.0(API 26)的問(wèn)題,我們進(jìn)入到sources目錄,將android-26目錄名稱改為android-26-ori,再?gòu)?fù)制一個(gè)android-23,將復(fù)制出來(lái)的目錄改為android-26。之后重啟Android Studio就會(huì)發(fā)現(xiàn)可以正常對(duì)應(yīng)了,強(qiáng)烈推薦使用該方法。

2. 改頭換面:將配置文件中的compileSdkVersion和buildToolsVersion都改為指定API

? ? 該方法需要我們將build.gradle中的配置進(jìn)行修改,使其改為我們?cè)O(shè)備對(duì)應(yīng)的版本。該方法適用性有限,因?yàn)楦耐曛蟪3?huì)出現(xiàn)一堆的編譯報(bào)錯(cuò),而且對(duì)于大工程來(lái)說(shuō),這種改編譯版本的方法代價(jià)實(shí)在太大,所以這里并不推薦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容