java - Errores de 'Debe anular un método de superclase' después de importar un proyecto a Eclipse




android override (8)

Chicos, en mi caso, ninguna de las soluciones anteriores funcionó.

Tuve que eliminar los archivos dentro del área de trabajo del Proyecto:

  • .proyecto
  • .classpath

Y la carpeta:

  • .settings

Luego copié los de un proyecto similar que funcionaba antes. Esto logró arreglar mi proyecto roto.

Por supuesto, no use este método antes de probar las alternativas anteriores.

Cada vez que tengo que volver a importar mis proyectos a Eclipse (si reinstalé Eclipse, o cambié la ubicación de los proyectos), casi todos mis métodos anulados no están formateados correctamente, lo que causa el error. The method must override a superclass method .

Cabe destacar que esto se debe a los proyectos de Android: por el motivo que sea, los valores de los argumentos de los métodos no siempre se rellenan, por lo que tengo que rellenarlos manualmente. Por ejemplo:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

será poblada inicialmente de esta manera:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

Lo extraño es que, si elimino mi código y hago que Eclipse vuelva a crear el método automáticamente, utiliza los mismos nombres de argumento que ya tenía, por lo que no sé realmente dónde está el problema, aparte de que automáticamente formatea el método para yo.

Esto se convierte en una molestia tener que recrear manualmente TODOS mis métodos anulados a mano. Si alguien puede explicar por qué sucede esto o cómo solucionarlo, estaría muy feliz.

Tal vez se deba a la forma en que estoy formateando los métodos, ¿cuáles están dentro de un argumento de otro método?


Con Eclipse Galileo , vaya a Eclipse -> Preferencias del menú, luego seleccione Java y Compilador en el diálogo.

Ahora todavía puede mostrar el nivel de cumplimiento del compilador en 1.6, sin embargo, todavía ve este problema. Así que ahora seleccione el enlace " Configurar ajustes específicos del proyecto ... " y allí verá que el proyecto está configurado en 1.5, ahora cámbielo a 1.6. Tendrá que hacer esto para todos los proyectos afectados.

Esta interfaz bizantina de menú / diálogo es típica del diseño de IU deficiente de Eclipse.


En caso de que esto le pase a alguien más que haya probado el método de alfazero y de Paul y que aún no haya funcionado

Para mí, eclipse de alguna manera 'guardó en caché' los errores de compilación incluso después de hacer un Proyecto> Limpiar ...

Tuve que desmarcar Proyecto> Generar automáticamente, luego hacer un Proyecto> Limpiar y luego construir nuevamente.

Además, en caso de duda, intente reiniciar Eclipse . Esto puede solucionar muchos errores incómodos e inexplicables.


En mi caso, este problema ocurrió cuando importé un proyecto de Maven a Eclipse. Para resolver esto, agregué lo siguiente en pom.xml :

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

Luego, en el menú contextual del proyecto, vaya a "Maven -> Actualizar proyecto ...", y presione OK.

Eso es. Espero que esto ayude.


Esta es mi segunda vez que encuentro este problema. Primera vez de acuerdo con la recomendación del alphazero funcionó. pero en la segunda vez que establezco 1.6, no funciona como "CACHE" este error después de limpiar y reconstruir.

Intente apagar 'Build Automatically' como dice Rollin_s -> ¡error aún aquí!

Así que eliminé el proyecto problemático (ya configurado en 1.6) desde el Explorador de paquetes y lo importé de nuevo -> inicia una reconstrucción y no hay error esta vez

Espero que esto ayude a alguien


La reparación debe anular un error de método de clase superior no es difícil, solo necesita cambiar la versión de origen Java a 1.6 porque desde Java 1.6 @Override se puede usar la anotación junto con el método de interfaz. Para cambiar la versión de origen a 1.6 siga los pasos a continuación:

  1. Seleccione Proyecto, Clic derecho, Propiedades
  2. Seleccione Java Compiler y marque la casilla de verificación "Habilitar configuraciones específicas del proyecto"
  3. Ahora haga el nivel de cumplimiento del compilador a 1.6
  4. Aplicar los cambios

Para resolver este problema, vaya a las propiedades de su Proyecto -> compilador de Java -> Seleccione el nivel de cumplimiento del compilador para 1.6-> Aplicar.


Si nada de lo anterior ayuda, asegúrese de tener seleccionado un " Entorno de ejecución " adecuado, y no un "JRE alternativo".

Se encuentra en:

Proyecto -> Construir ruta -> Bibliotecas

Seleccione la JRE System Library y haga clic en Edit...

Si se selecciona "JRE alternativo ...", cámbielo a un "Entorno de ejecución" JavaSE-1.8 (jre1.8.0_60) como JavaSE-1.8 (jre1.8.0_60) . No tengo idea de por qué, pero esto lo resolverá.





superclass