? ? 對于Android studio調(diào)試的時候,我們經(jīng)常會需要debug到源碼內(nèi)部怎燥,這個時候經(jīng)常會出現(xiàn)debug位置與源碼行號對應不上的問題,這是因為我們使用的測試設備中的系統(tǒng)版本與我們AndroidStudio中使用的SourceCode的版本不一致導致的锯仪。比如我們使用的是6.0的設備于毙,而Android Studio錯誤地識別并使用了版本為8.0的SourceCode,就會出現(xiàn)這個問題搬泥。我們從google? Issue Tracker可以知道桑寨,該問題是已知bug:https://issuetracker.google.com/issues/37058409
? ? 據(jù)說官方說,這個問題很早就已經(jīng)解決了忿檩,但是實際上我們現(xiàn)在能下載到的版本依舊存在該問題(筆者目前的版本 Android Studio 3.0.1)尉尾。目前有兩種方案可以暫時解決這個問題。
1. 偷梁換柱:將SourceCode人為替換掉
? ? 我們可以在我們的SDK目錄下找到 sources目錄燥透,這里面存放的是我們所下載的各個系統(tǒng)版本的源碼資源沙咏,找到發(fā)生錯誤的源碼資源,再用正確的資源替換掉班套。比如針對我們上面6.0(API 23)系統(tǒng)被錯誤使用8.0(API 26)的問題肢藐,我們進入到sources目錄,將android-26目錄名稱改為android-26-ori吱韭,再復制一個android-23吆豹,將復制出來的目錄改為android-26。之后重啟Android Studio就會發(fā)現(xiàn)可以正常對應了理盆,強烈推薦使用該方法瞻讽。
2. 改頭換面:將配置文件中的compileSdkVersion和buildToolsVersion都改為指定API
? ? 該方法需要我們將build.gradle中的配置進行修改,使其改為我們設備對應的版本熏挎。該方法適用性有限,因為改完之后常常會出現(xiàn)一堆的編譯報錯晌砾,而且對于大工程來說坎拐,這種改編譯版本的方法代價實在太大,所以這里并不推薦。