最近在做一个jWebSocket Android客户端的Demo时遇到如下错误:
"......The method onAccuracyChanged(Sensor, int) of type Fundamentals must override a superclass......"
"......The method onClick(View) of type new View.OnClickListener(){} must override a superclass...... "
“......The method onSensorChanged(SensorEvent) of type Fundamentals must override a superclass......”
相应的代码如下:
lBtnSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub try { JWC.broadcastText("pause"); } catch (WebSocketException ex) { } log(lBtnSend.getText()); if(lBtnSend.getText().equals("Pause")){ lBtnSend.setText("Begin"); }else{ lBtnSend.setText("Pause"); } } }); ...... ...... @Override public void onAccuracyChanged(Sensor arg0, int arg1) { ...... } @Override public void onSensorChanged(SensorEvent event) { ...... }
查找后发现是jdk版本的问题
解决办法:
在Eclipse中依次打开:项目属性-->javaCompiler,找到其中的complier compliance level 将1.5改为1.6。 就是说Java 1.5的编译器默认对父类的方法进行覆盖,采用@Override进行说明;但1.6已经扩展到对接口的方法,所以如果还是以Java 1.5的编译器来编译的话,会出现错误。 java的编译器是1.6版本的,选择编译级别为1.6即可。