您的位置:首页 > 移动开发 > Android开发

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

2017-02-17 13:27 337 查看
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();

就当做个记录吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  开发框架