背景
@Override
public synchronized void init(ProcessingEnvironment processingEnv) {
public boolean process(Set extends TypeElement> set, RoundEnvironment roundEnv) {
复制代码
APT代码固定模板ProcessingEnvironment是什么? TypeElement是什么? RoundEnvironment又是什么?
解决办法
debug一下代码在调试窗口看看对象里面装的什么值.
步骤如下:
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…
3.调试
执行下clean.保证APT代码没有生成
打上断点,执行apt调试的debug. 这里没有断点状态也没关系,是IDE的原因,只要连接到 Connected to the target VM, address: 'localhost:5005', transport: 'socket'即可.
3. 执行宿主的build构建.
4. 重复调试.
如果已经调试过一遍会生成APT自动构造的代码,下次就不会进入调试,所以每次debug都需要clean,clean执行顺序在debug前后都可以.
总结
在Debug的时候熟悉对象含义,然后把代码拼凑出来.
注意点:
调试完成后一定把调试开关关闭了,即把全局的gradle.properties修改回来. 否则会影响正常的开发.
调试的时候如果出现错误 Error running 'Remote Debugger': Unable to open debugger port (localhost:5005): java.net.ConnectException. 把5005端口占用的进程杀掉或者重启下IDE.
不要多个项目同时调试.
关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[APT Android代码怎么调试]http://www.zyiz.net/tech/detail-141351.html