2014年8月18日 星期一

android開發 @override 編譯錯誤解決辦法

[java] view plaincopy
  1. mButton1.setOnClickListener(new Button.OnClickListener()  
  2.     {  
  3.       @Override  
  4.       public void onClick(View v)  
  5.       {  
  6.         // TODO Auto-generated method stub  
  7.         mTextView1.setText("Hi, Everyone!!");  
  8.       }  
  9.     });  



上述代码报错如下
- implements android.view.View.OnClickListener.onClick
- The method onClick(View) of type new View.OnClickListener(){} must override a superclass

查找后发现是jdk版本问题 项目属性---->javaCompiler中的complier compliance level 将1.5改为1.6

就是说Java 1.5的编译器默认对父类的方法进行覆盖,采用@Override进行说明;但1.6已经扩展到对接口的方法;所以如果还是以Java 1.5的编译器来编译的话,会出现错误。

java的编译器是1.6版本的,选择编译级别为1.6,但重要的一点是,选择build的android库是1.5的即可,生成的apk程序是可以在1.5内核上跑起来。

总的来讲: android sdk的版本与Java JRE的版本可以配置起来用,两者关系应该是疏松的。