Android?Studio調(diào)試Gradle插件詳情
前言:
- 使用ASM在編譯期修改字節(jié)碼來完成各種功能(統(tǒng)計(jì)方法耗時(shí)、全埋點(diǎn)統(tǒng)計(jì)...),就需要開發(fā)Gradle插件。開發(fā)插件中遇到問題排查使用日志輸出效率太低了,能斷點(diǎn)調(diào)試的話就更好了。其實(shí)已經(jīng)有很多文章寫了調(diào)試插件的方法,但是自己照著他們的步驟下來還是遇到一些問題,把這些問題記錄下來方便大家少走彎路。
- Android Studio版本是3.5.2,Gradle版本是3.5.1
1.點(diǎn)擊【Run】->【Edit Configurations...】:

2.然后點(diǎn)擊左上角的【+】,選擇【Remote】:

3.名字隨便起,把命令行參數(shù)復(fù)制下來,【Use module classpath】選擇要調(diào)試的插件,其他默認(rèn)即可,然后點(diǎn)擊【OK】:

這樣服務(wù)端就搞好了,稍后我們需要配置客戶端調(diào)試器讓其連接過來,就可以調(diào)試了
4.在目標(biāo)項(xiàng)目新建gradle任務(wù)并連接到服務(wù)端
在目標(biāo)項(xiàng)目(即引入插件的那個(gè)項(xiàng)目),打開gradle目錄,啟動模塊一般都是app,所以我們展開到【:app】->【Tasks】右擊【build】選擇create

5. 在打開的界面把第3步復(fù)制下來的內(nèi)容粘貼到【VM options】,并且將suspend=n改為suspend=y然后點(diǎn)擊【OK】:

6. 【:app】->【Tasks】->【Run Configgurations】會生成一個(gè)任務(wù),最終在最終就是下邊這個(gè)樣子:

7. 現(xiàn)在可以開始調(diào)試了,在插件代碼里面需要調(diào)試的地方打好斷點(diǎn),雙擊我們新建的gradle任務(wù):

8.將工具欄的運(yùn)行選項(xiàng)改成我們新建的遠(yuǎn)程調(diào)試那個(gè)選項(xiàng),沒有取名字的話默認(rèn)就是【unnamed】,然后點(diǎn)擊啟動調(diào)試的圖標(biāo):

啟動成功會有如下輸出:

9.目標(biāo)項(xiàng)目的調(diào)試器很快就會連接到我們建立的服務(wù)端并自動跳轉(zhuǎn),遇到斷點(diǎn)則會斷下來:

問題:
- 斷點(diǎn)只能進(jìn)入Plugin的apply方法,不能進(jìn)入Transform的transform方法,clean項(xiàng)目再執(zhí)行上面步驟7、8
到此這篇關(guān)于Android Studio調(diào)試Gradle插件詳情的文章就介紹到這了,更多相關(guān)Android Studio調(diào)試Gradle內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
讓Android中RadioGroup不顯示在輸入法上面的辦法
在Android開發(fā)中,發(fā)現(xiàn)一個(gè)問題,打開輸入法導(dǎo)致下面的radioGroup的位置發(fā)生了變化,被頂?shù)搅溯斎敕ǖ纳厦?,那么該如何解決呢?下面來看看。2016-08-08
Android 自定義View實(shí)現(xiàn)單擊和雙擊事件的方法
下面小編就為大家?guī)硪黄狝ndroid 自定義View實(shí)現(xiàn)單擊和雙擊事件的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09
Android三種方式生成矢量圖之VectorDrawable類使用詳解
這篇文章主要介紹了Android三種方式生成矢量圖的VectorDrawable類,2014年6月26日的I/O?2014開發(fā)者大會上谷歌正式推出了Android?L,它帶來了全新的設(shè)計(jì)語言Material?Design,新的API也提供了這個(gè)類VectorDrawable2023-02-02
flutter傳遞值到任意widget(當(dāng)需要widget嵌套使用需要傳遞值的時(shí)候)
這篇文章主要介紹了flutter傳遞值到任意widget(當(dāng)需要widget嵌套使用需要傳遞值的時(shí)候),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
Android字符串資源文件format方法使用實(shí)例
本文介紹了Android的資源文件values/strings.xml中如何實(shí)現(xiàn)格式化字符串,這里舉個(gè)簡單的例子供大家參考2013-11-11
Android端實(shí)現(xiàn)單點(diǎn)登錄的方法詳解
所謂單點(diǎn)登錄就是指的同一個(gè)賬戶(id)不能在一個(gè)以上的設(shè)備上登錄對應(yīng)的用戶系統(tǒng)(排除web端和移動端可以同時(shí)登錄的情況),例如:用戶m在A設(shè)備登錄并保持登錄狀態(tài),然后又在B設(shè)備登錄,此時(shí)A應(yīng)該要強(qiáng)制下線,m無法在A設(shè)備上繼續(xù)執(zhí)行用戶相關(guān)的操作,下面來一起看看吧。2016-11-11
Android動態(tài)使用VectorDrawable過程詳解
這篇文章主要介紹了Android動態(tài)使用VectorDrawable過程,2014年6月26日的I/O 2014開發(fā)者大會上谷歌正式推出了Android L,它帶來了全新的設(shè)計(jì)語言Material Design,新的API也提供了這個(gè)類VectorDrawable2023-02-02
Android 啟動模式FLAG_ACTIVITY_CLEAR_TOP案例詳解
這篇文章主要介紹了Android 啟動模式FLAG_ACTIVITY_CLEAR_TOP案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08

