AndroidAnnotation无法生成下划线类问题记录

Posted hiperion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AndroidAnnotation无法生成下划线类问题记录相关的知识,希望对你有一定的参考价值。

最近有个老项目要进行一些修改。后台服务接口全变了。开始改的还顺利,根据接口文档一个个的改,调试。然后正常release一版到fir上。后来发现有一个地方没有修改。就想着改了再提一版,没想到噩梦就此开始。androidAnnotation怎么也不生成带下划线的类了。而且连build文件夹中都没有AndroidAnnotation.log的类,gradle中也没有相关报错信息。只是报xxx_.class找不到。
网上搜索了一天也没有什么结果。网上还有说是jdk的问题,环境变量也配置了。也不管用。git切换回原来的分支,测试,可以正常编译。切回来就又不行。看来不是jdk问题,还是代码有问题。
于是复制出一份改为的代码,然后从旧分支创建了一个新分支。把改完出错的代码,一个一个的复制过来,看到底是哪里出了错误。
后来发现新建了一个model

public class UserInfo implements Serializable 
    @SerializedName("code")
    private Integer code;
    @SerializedName("msg")
    private String msg;
    @SerializedName("data")
    private UserProfile data;
    .
    .
    .

开始以为是这个注解的问题SerializedName,于是把变量都改为public,经过测试依然没有作用。
就在这时,切换到另一个model的时候,偶然间发现,这个新建的类,没有添加serialVersionUID,哈哈

private static final long serialVersionUID = -1426714205495969339L;

增加这一行就可。竟然犯了这么低级错误。记录一下。警醒自己。
继续对比代码后,终于发现了更低级错误的地方,哈哈
原来的定位的工具类中定义了两组默认经纬度
开始的代码是这样的,使用了B作为默认地址

    //默认地址A
    //private static final double DEFAULT_LAT = 66.13256;
    //private static final double DEFAULT_LON = 99.20075;
    //默认地址B
    public static final double DEFAULT_LAT = 33.119436;
    public static final double DEFAULT_LON = 88.136881;

测试说无法定位,由于B就是当前办公地址,我也没法判断是否不能定位,就把地址A注释去掉了,把地址B注释了。但是DEFAULT_LAT在别的类中有引用。我改为也没注意。编译的时候竟然也不报这个错。总是报AA那个下划线的类找不到,总以为是AA的问题。
地址A使用private,是因为之前只是在当前类使用。后来改为地址B之后呢,别的类也引用了,所以地址B改成public,这次切换默认地址竟然没发现。而且这个gradle编译竟然也不打印。看来还要研究gradle,看看如何打印详细的log信息。

以上是关于AndroidAnnotation无法生成下划线类问题记录的主要内容,如果未能解决你的问题,请参考以下文章

AndroidAnnotation无法生成下划线类问题记录

Android Studio3.0 配置AndroidAnnotation注解框架

idea自动生成mysql实体类时没有下划线怎么办

关联对象实现原理

关联对象实现原理

关联对象实现原理