
现在android的开发平台基本都是4.0版本了,但是GreenDroid的源码好像还是一直存在这个问题。
直接下载DreenDroid的源码,然后导入GreenDroid包到eclipse,编译的时候遇到activity中定义的getActionBar()方法会出现错误:
Multiple markers at this line
- The return type is incompatible with Activity.getActionBar()
- overrides android.app.Activity.getActionBar
原因是GreenDroid的activity继承自android.app.Activity,在android 3.0之后这个Activity类中就包含了getActionBar方法,所以DreenDroid的getActionBar方法在编译的时候就会作为重载方法,但是返回的类型却与父类Activity不一致,就导致了这个编译错误。
目前我的解决方法是直接把GreenDroid的方法名称改为getGDActionBar(),然后将其他地方对此方法的调用做相应的修改。
因为Activity必须实现父类的抽象getActionBar方法,所以还要新增一个getActionBar方法,返回null即可:
public android.app.ActionBar getActionBar() {
return null;
}
PS:在GreenDroid中还有一个问题就是默认的开发包会依赖google的jar包,但是很多时候我们开发应用根本不会用到google map之类的功能,编译的时候也没有使用google api,这种情况直接将google相关的类文件删除即可。
转载请注明出处:一介码农
本文详细介绍了在使用GreenDroid时遇到的方法冲突问题,特别是与Android 4.0及更高版本的冲突。通过直接修改源码,将GreenDroid的方法名更改为getGDActionBar(),并为Activity类添加一个返回null的getActionBar()方法,成功解决了此问题。同时,文章还指出了GreenDroid中默认依赖的Google jar包问题,提出删除不使用的GoogleAPI类文件的解决方案。
5039

被折叠的 条评论
为什么被折叠?



