Android錯誤:The method onClick(View) of type new View.OnClickListener(){} must override a superclass

最近在做一個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……”

相應的代碼如下:

[java]
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即可。

摘自 zyz511919766的專欄

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *