APT Android代碼怎麼調試

背景

@Override
    public synchronized void init(ProcessingEnvironment processingEnv) {
        
    public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnv) {
    
複製代碼

APT代碼固定模板ProcessingEnvironment是什麼? TypeElement是什麼? RoundEnvironment又是什麼?java

解決辦法

debug一下代碼在調試窗口看看對象裏面裝的什麼值. 步驟以下:markdown

1.打開APT調試模式

切換到Android目錄下,編譯全局的gradle.properties文件.增長如下代碼:

org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
-Dorg.gradle.debug=true
複製代碼

2.建立一個APT調試類型

怎麼建立能夠按照這裏來 www.jianshu.com/p/4fef2ad51…jvm

3.調試

  1. 執行下clean.保證APT代碼沒有生成
  2. 打上斷點,執行apt調試的debug. 這裏沒有斷點狀態也不要緊,是IDE的緣由,只要鏈接到 Connected to the target VM, address: 'localhost:5005', transport: 'socket'便可.

3. 執行宿主的build構建.

4. 重複調試. 若是已經調試過一遍會生成APT自動構造的代碼,下次就不會進入調試,因此每次debug都須要clean,clean執行順序在debug先後均可以.

總結

在Debug的時候熟悉對象含義,而後把代碼拼湊出來. 注意點:socket

  1. 調試完成後必定把調試開關關閉了,即把全局的gradle.properties修改回來. 不然會影響正常的開發.
  2. 調試的時候若是出現錯誤 Error running 'Remote Debugger': Unable to open debugger port (localhost:5005): java.net.ConnectException. 把5005端口占用的進程殺掉或者重啓下IDE.
  3. 不要多個項目同時調試.
相關文章
相關標籤/搜索