Androidannotations、IntentService、Freeline同时使用时无法编译

来源:互联网 发布:察哈尔抗日同盟军 知乎 编辑:程序博客网 时间:2024/06/13 01:43

AndroidAnnotations(以下简称AA) 是通过注解简化代码的一个快速开发框架,通过生成当前类的子类来实现相应的代码。
开发功能中也遇到过生成的子类无法找到的问题,但一般仔细查找,都能找到代码问题所在。但今天遇到这个问题,却让我感到很棘手。
这里写图片描述
图片所示的是正确编译后的效果,而我今天遇到的是编译release版时,release文件夹什么也不生成,在debug模式下确可以正常生成子类。这个文件夹中应该是AA通过注解生成的子类。在release编译过程中会报一堆生成的类找不到的错误,其实就是没有正确生成这些类。

在这个项目中我还使用了IntentSerivce进行异步数据获取。
在Application中有这样一段代码:

private void preloadData(){    PreLoadIntentService_.intent(getApplication())                .loadPageData()                .start();}

偶然间我发现getApplication()类竟然是freeline里的,不是activity.getApplication().
于是将代码改为

private void preloadData(){    PreLoadIntentService_.intent(this)                .loadPageData()                .start();}

编译通过了。原来初始化Intentservice的时候不小心使用了Freeline的Application,其实Freeline也提供了一个方法,FreelineCore.getRealApplication();
就当做个记录吧。

0 0
原创粉丝点击