¿Cómo resolver java.lang.NoClassDefFoundError?

221

He probado tanto el ejemplo en los Tutoriales Java de Oracle . Ambos compilan bien, pero en tiempo de ejecución, ambos presentan este error:

Exception in thread "main" java.lang.NoClassDefFoundError: graphics/shapes/Square
    at Main.main(Main.java:7)
Caused by: java.lang.ClassNotFoundException: graphics.shapes.Square
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more

Creo que podría tener el Main.javaarchivo en la carpeta incorrecta. Aquí está la jerarquía de directorios:

graphics
 Main.java
 shapes
|    Square.java
|    Triangle.java
 linepoint
|    Line.java
|    Point.java
 spaceobjects
|    Cube.java
|    RectPrism.java

Y aquí está Main.java:

import graphics.shapes.*;
import graphics.linepoint.*
import graphics.spaceobjects.*;

public class Main {
    public static void main(String args[]) {
        Square s = new Square(2,3,15);
        Line l = new Line(1,5,2,3);
        Cube c = new Cube(13,32,22);
    }
}

¿Qué estoy haciendo mal aquí?

ACTUALIZAR

Después de poner la Mainclase en el graphicspaquete (lo agregué package graphics;), establezca el classpath en "_test" (carpeta que contiene gráficos), lo compilé y lo ejecuté usando java graphics.Main(desde la línea de comandos), funcionó.

ACTUALIZACIÓN muy tarde # 2

No estaba usando Eclipse (solo Notepad ++ y el JDK), y la actualización anterior resolvió mi problema. Sin embargo, parece que muchas de estas respuestas son para Eclipse e IntelliJ, pero tienen conceptos similares.

Jonathan Lam
fuente
1
Mirando a su clase principal, no está en un paquete (lo tendría package graphics;en la parte superior). ¿Es graphicsla cabeza de la estructura de su paquete? ¿Square tiene package graphics.shapesen la parte superior?
lreeder
1
Estás enumerando dónde están los archivos .java, pero dado que lo que obtienes es un problema de tiempo de ejecución , lo que realmente te interesa es dónde están los archivos .class y si están en tu classpath o no. ¿Cómo estás ejecutando la clase Main?
Thor84no
Simplemente presione Shift + ctrl + o en eclipse para organizar sus importaciones
happybuddha
Asegúrese de escribir el nombre de la clase correctamente. Recibí este error porque no comencé el nombre de la clase con una letra mayúscula
Jeremy Borg
Esto a veces ocurre en IntelliJ IDEA después de una refactorización importante. Haga clic derecho en su proyecto y seleccione -> Compilar módulo , y luego reinicie el proyecto y debería funcionar nuevamente.
Zar

Respuestas:

223

Después de compilar su código, termina con .classarchivos para cada clase en su programa. Estos archivos binarios son el código de bytes que Java interpreta para ejecutar su programa. Esto NoClassDefFoundErrorindica que el cargador de clases (en este caso java.net.URLClassLoader), que es responsable de cargar dinámicamente las clases, no puede encontrar el .classarchivo para la clase que está tratando de usar.

Su código no se compilaría si las clases requeridas no estuvieran presentes (a menos que las clases estén cargadas con reflejo), por lo que esta excepción generalmente significa que su classpath no incluye las clases requeridas. Recuerde que el cargador de clases (específicamente java.net.URLClassLoader) buscará clases en el paquete abc en la carpeta a / b / c / en cada entrada en su classpath. NoClassDefFoundErrortambién puede indicar que falta una dependencia transitiva de un archivo .jar con el que ha compilado y que está tratando de usar.

Por ejemplo, si tuviera una clase com.example.Foo, después de compilar tendría un archivo de clase Foo.class. Digamos, por ejemplo, que su directorio de trabajo es .../project/. Ese archivo de clase debe colocarse .../project/com/exampley establecería su classpath en .../project/.

Nota al margen: recomendaría aprovechar las increíbles herramientas que existen para los lenguajes Java y JVM. Los IDE modernos como Eclipse e IDEA y las herramientas de administración de compilación como Maven o Gradle lo ayudarán a no tener que preocuparse por las rutas de clase (tanto) y centrarse en el código. Dicho esto, este enlace explica cómo configurar el classpath cuando ejecuta en la línea de comando.

Samuel
fuente
Estoy leyendo esto debido a un error que encontré al intentar ejecutar una prueba unitaria en Android. Resulta que el NoClassDefFoundError, en mi caso, ocurrió como resultado de la falta de dependencias en la prueba. Necesito pensar en la inyección de dependencia para evitar errores como este. Gracias por la elaborada respuesta.
típico danny
130

Me gustaría corregir la perspectiva de los demás NoClassDefFoundError.

NoClassDefFoundError puede ocurrir por múltiples razones como

  1. ClassNotFoundException - .class no encontrada para esa clase referenciada independientemente de si está disponible en el momento de la compilación o no (es decir, clase base / secundaria).
  2. Archivo de clase ubicado, pero se produjo una excepción al inicializar variables estáticas
  3. Archivo de clase ubicado, excepción generada al inicializar bloques estáticos

En la pregunta original, fue el primer caso que puede corregirse estableciendo CLASSPATH en el archivo jar de clases referenciadas o en su carpeta de paquetes.

¿Qué significa decir "disponible en tiempo de compilación"?

  • La clase referenciada se usa en el código.
    Por ejemplo: dos clases, A y B (se extiende A). Si se hace referencia a B directamente en el código, está disponible en tiempo de compilación, es decir, A a = new B ();

¿Qué significa decir "no disponible en tiempo de compilación"?

  • La clase de tiempo de compilación y la clase de tiempo de ejecución son diferentes, es decir, por ejemplo, la clase base se carga usando el nombre de clase de la clase secundaria, por ejemplo, Class.forName ("nombre de clase")
    Por ejemplo: Dos clases, A y B (se extiende A). El código tiene
    A a = Class.forName ("B"). NewInstance ();
p1nkrock
fuente
En mi caso, había compilado una clase, la movieron a un directorio llamado aplicación. Tuve que agregar una línea package app;y recompilar antes de poder moverla a la aplicación del subdirectorio.
taco
1
Además de los 3 enumerados anteriormente, ClassLoaders también puede causar dicho error, que es básicamente ClassNotFoundException, en este escenario, la clase puede presentarse en classpath pero intentar cargar desde ClassLoader diferente
Fahad
2 y 3 son específicos del cargador de clases. Según el javadoc, la excepción solo está destinada a la razón 1.
Samuel
1
He probado el caso 2 y el caso 3, no es NoClassDefFoundError, es ExceptionInInitializerError Caso 2. Se encuentra el archivo de clase, pero se levantó la excepción al inicializar las variables estáticas Caso 3. Archivo de clase ubicado, Excepción planteada al inicializar bloques estáticos
Michael
1
@ Michael, este enlace dice que tu stacktrace también se mostrará NoClassDefFoundErrorpara ese caso: archive.is/YPbYI#selection-2107.0-2115.13
Pacerier
15

NoClassDefFoundErrorsignifica que la clase está presente en el classpath en Compile time, pero no existe en el classpath en Runtime.

Si estás usando Eclipse, asegúrese de que tiene el shapes, linepointsy el spaceobjectscomo entradas en el .classpatharchivo.

Konstantin Yovkov
fuente
1
¿Cómo manejar eso en tiempo de ejecución a través de try / catch ?
Maveň ツ
55
Esta respuesta no es correcta en la forma en que la escribes. Correcto sería: "UNA causa posible de este error es ..." Pero puede haber otras razones por las que obtiene este error, por ejemplo, al cargar un archivo JAR en tiempo de ejecución con un cargador de clases.
Elmue
13

si recibió uno de estos errores al compilar y ejecutar:

* NoClassDefFoundError

* Error: Could not find or load main class hello

* Exception in thread "main" java.lang.NoClassDefFoundError:javaTest/test/hello 
(wrong name: test/hello)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

-------------------------- SOLUCION -----------------------

El problema está principalmente en la organización de paquetes. Debe organizar sus clases en carpetas correctamente con respecto a las clasificaciones de paquetes en su código fuente.

On Compiling process use this command:

javac -d . [FileName.java]

To Run the class please use this command:

java [Package].[ClassName]
sami
fuente
El d ." en javac command hace el truco, creando la estructura de carpetas de los paquetes en lugar de poner todos los archivos .class en el directorio raíz, ¡gracias!
Jorge Sampayo
9
java.lang.NoClassDefFoundError

indica que se encontró algo en tiempo de compilación pero no en tiempo de ejecución . tal vez solo tienes que agregarlo al classpath.

sschrass
fuente
15
¿Como hacer eso?
Narendra Singh
depende del contexto que esté solicitando.
sschrass
6

No se produce una excepción de definición de clase cuando la clase deseada no se encuentra en la ruta de clase. En la clase de tiempo de compilación: la clase se generó desde el compilador de Java, pero de alguna manera en el tiempo de ejecución no se encuentra la clase dependiente.

Veamos un ejemplo simple:

public class ClassA{
public static void main(String args[]){
     //Some gibberish Code...
     String text = ClassB.getString();
     System.out.println("Text is :" + text);
}

}

public class ClassB{
    public static String getString(){
      return "Testing Some Exception";
 }
}

Ahora supongamos que los dos códigos fuente Java anteriores se colocan en alguna carpeta, digamos "NoClassDefinationFoundExceptionDemo"

Ahora abra un shell (suponiendo que Java ya se esté configurando correctamente)

  1. Vaya a la carpeta "NoClassDefinationFoundExceptionDemo"
  2. Compilar archivos fuente Java javac ClassB javac ClassA
  3. Ambos archivos se compilan correctamente y generan archivos de clase en la misma carpeta que ClassA.class y ClassB.class
  4. Ahora, dado que estamos anulando ClassPath al directorio de trabajo actual, ejecutamos el siguiente comando java -cp. Clase A y funcionó y verá la salida en la pantalla
  5. Ahora digamos que eliminó el archivo ClassB.class del directorio actual. y ahora ejecutas el comando nuevamente. java -cp. ClassA Ahora te saludará con NoClassDefFoundException. como ClassB, que es una dependencia para ClassA, no se encuentra en el classpath (es decir, el directorio de trabajo actual).
bharatj
fuente
5

NoClassDefFoundError en Java:

Definición:

NoClassDefFoundError vendrá si una clase estuvo presente durante el tiempo de compilación pero no está disponible en java classpath durante el tiempo de ejecución. Normalmente verá la siguiente línea en el registro cuando obtenga NoClassDefFoundError: Excepción en el hilo "main" java.lang.NoClassDefFoundError

Posibles Causas:

  1. La clase no está disponible en Java Classpath.

  2. Es posible que esté ejecutando su programa utilizando el comando jar y la clase no se definió en el atributo ClassPath del archivo de manifiesto.

  3. Cualquier script de inicio anula la variable de entorno Classpath.

  4. Debido a que NoClassDefFoundError es una subclase de java.lang.LinkageError, también puede venir si una de sus dependencias, como la biblioteca nativa, puede no estar disponible.

  5. Verifique java.lang.ExceptionInInitializerError en su archivo de registro. NoClassDefFoundError debido a la falla de la inicialización estática es bastante común.

  6. Si está trabajando en un entorno J2EE, la visibilidad de Class entre múltiples Classloader también puede causar java.lang.NoClassDefFoundError, consulte la sección de ejemplos y escenarios para una discusión detallada.

Posibles Resoluciones:

  1. Verifique que todas las clases Java requeridas estén incluidas en el classpath de la aplicación. El error más común es no incluir todas las clases necesarias, antes de comenzar a ejecutar una aplicación Java que depende de algunas bibliotecas externas.

  2. El classpath de la aplicación es correcto, pero la variable de entorno Classpath se reemplaza antes de la ejecución de la aplicación.

  3. Verifique que el ExceptionInInitializerError mencionado anteriormente no aparezca en el seguimiento de la pila de su aplicación.

Recursos:

3 formas de resolver java.lang.NoClassDefFoundError en Java J2EE

java.lang.NoClassDefFoundError - Cómo resolver el error No Class Def Found

Affy
fuente
3

Si su proyecto está en un paquete como com.blahcodey se llama a su clase Main, los archivos compilados pueden salir en una estructura de directorio como ./out/com/blahcode/Main.class. Esto es especialmente cierto para IntelliJ IDEA.

Al intentar ejecutar desde un shell o cmd, debe hacerlo cda lo que contiene comcomo un subdirectorio.

cd out
java -classpath . com.blahcode.Main
Hypershadsy
fuente
1

Después de trabajar en un proyecto de NetBeans durante muchos meses, de repente recibí el mensaje NoClassDefFoundError poco después de recibir una alerta de "memoria baja". Hacer una reconstrucción limpia no ayudó, pero al cerrar Netbeans por completo y reabrir el proyecto no hubo informes de errores.

Ed S
fuente
1

Esta respuesta es específica de un java.lang.NoClassDefFoundError que ocurre en un servicio :

Mi equipo recientemente vio este error después de actualizar un rpm que proporcionaba un servicio. Las rpm y el software dentro de él se habían construido con Maven, por lo que parecía que teníamos una dependencia del tiempo de compilación que simplemente no se había incluido en las rpm.

Sin embargo, al investigar, la clase que no se encontró estaba en el mismo módulo que varias de las clases en el seguimiento de la pila. Además, este no era un módulo que solo se había agregado recientemente a la compilación. Estos hechos indicaron que podría no ser un problema de dependencia de Maven.

La solución final: reiniciar el servicio!

Parece que la actualización de rpm invalida el identificador del archivo del servicio en el archivo jar subyacente. Luego, el servicio vio una clase que no se había cargado en la memoria, la buscó entre su lista de identificadores de archivos jar y no pudo encontrarla porque el identificador de archivos desde el que podía cargar la clase se había invalidado. Reiniciar el servicio lo obligó a volver a cargar todos sus identificadores de archivos, lo que le permitió cargar esa clase que no se había encontrado en la memoria justo después de la actualización de rpm.

Espero que ese caso específico ayude a alguien.

John Chesshir
fuente
1

Me he enfrentado con el problema hoy. Tengo un proyecto de Android y después de habilitarlomultidex el proyecto ya no comenzaría.

La razón fue que había olvidado llamar al método multidex específico que debería agregarse Application classe invocar antes que todo lo demás.

 MultiDex.install(this);

Siga este tutorial para habilitar multidex correctamente. https://developer.android.com/studio/build/multidex.html

Debe agregar estas líneas a su clase de aplicación

 @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
  }
CROSP
fuente
1

Para mi proyecto, lo que resolvió el problema fue que el navegador Chrome y el controlador de cromo no eran compatibles. Tenía una versión muy antigua del controlador que ni siquiera podía abrir el navegador. Acabo de descargar la última versión de ambos y el problema resuelto ¿Cómo descubrí el problema? Como ejecuté mi proyecto usando el controlador Firefox nativo de Selenium con una versión anterior de FF incluida en mi aplicación, me di cuenta de que el problema era la incompatibilidad entre el navegador y el controlador.

Espero que esto pueda ayudar a cualquiera con un problema similar al mío, que generó este mismo mensaje de error.

Kyon Perez
fuente
0

Mis dos centavos en esta cadena:

Asegúrese de que el classpath contiene rutas completas (en /home/user/lib/some_lib.jarlugar de ~/lib/some_lib.jar), de lo contrario, aún puede enfrentar un NoClassDefFoundErrorerror.

khkarens
fuente
Esto es cierto en parte, pero es más complicado. 1) Usted puede utilizar rutas relativas en la ruta de clase, sino que debe poder resolverse por la JVM ... en relación con el directorio actual de la JVM. Esto los hace frágiles . 2) Usted puede utilizar ~y otros personajes cáscara meta al establecer una variable de entorno de ruta de clases, pero sólo siempre y cuando el mecanismo se utiliza para establecer la variable que se expande para nombres de rutas reales. Si está utilizando bash, puede obtener resultados "mixtos". Por ejemplo, mira lo que obtienes cuando escribes echo ~:~en la línea de comando. El primero ~se expande, pero el segundo no.
Stephen C
0

Obtengo NoClassFoundError cuando las clases cargadas por el cargador de clases en tiempo de ejecución no pueden acceder a las clases ya cargadas por el cargador de raíz de Java. Debido a que los diferentes cargadores de clases están en diferentes dominios de seguridad (de acuerdo con Java), jvm no permitirá que las clases ya cargadas por el cargador de raíz se resuelvan en el espacio de direcciones del cargador de tiempo de ejecución.

Ejecute su programa con 'java -javaagent: tracer.jar [YOUR java ARGS]'

Produce resultados que muestran la clase cargada y el entorno del cargador que cargó la clase. Es muy útil rastrear por qué una clase no se puede resolver.

// ClassLoaderTracer.java
// From: https://blogs.oracle.com/sundararajan/entry/tracing_class_loading_1_5

import java.lang.instrument.*;
import java.security.*;

// manifest.mf
// Premain-Class: ClassLoadTracer

// jar -cvfm tracer.jar manifest.mf ClassLoaderTracer.class

// java -javaagent:tracer.jar  [...]

public class ClassLoadTracer 
{
    public static void premain(String agentArgs, Instrumentation inst) 
    {
        final java.io.PrintStream out = System.out;
        inst.addTransformer(new ClassFileTransformer() {
            public byte[] transform(ClassLoader loader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {

                String pd = (null == protectionDomain) ? "null" : protectionDomain.getCodeSource().toString();
                out.println(className + " loaded by " + loader + " at " + new java.util.Date() + " in " + pd);

                // dump stack trace of the thread loading class 
                Thread.dumpStack();

                // we just want the original .class bytes to be loaded!
                // we are not instrumenting it...
                return null;
            }
        });
    }
}
codeDr
fuente
0

Me pasó en Android Studio.

La solución que funcionó para mí: simplemente reinicie el estudio.

Yanish
fuente
0

Tuve el mismo problema con mi desarrollo de Android con Android Studio. Las soluciones proporcionadas son generales y no me ayudaron (al menos para mí). Después de horas de investigación, encontré la siguiente solución y puedo ayudar a los desarrolladores de Android que están desarrollando con Android Studio. modifique la configuración como se muestra a continuación Preferencias -> Compilación, Ejecución, Implementación -> Ejecución instantánea -> desmarque la primera opción.

Con este cambio estoy en funcionamiento. Espero que esto ayude a mis amigos desarrolladores.

máscara
fuente
0

Una fuente de error para esta excepción podría provenir de definiciones inconsistentes para Proguard, por ejemplo, una falta

-libraryJars "path.to.a.missing.jar.library".

Esto explica por qué la compilación y la ejecución funcionan bien, dado que el jar está allí, mientras que la limpieza y la compilación fallan. ¡Recuerde definir las bibliotecas jar recién agregadas en la configuración de proguard!

Tenga en cuenta que los mensajes de error de Proguard realmente no están a la altura, ya que se confunden fácilmente con mensajes de hormigas similares que llegan cuando el jar no está en absoluto. Solo en la parte inferior habrá un pequeño indicio de proguard en problemas. Por lo tanto, es bastante lógico comenzar a buscar errores de classpath tradicionales, etc., pero esto será en vano.

Evidentemente, la excepción NoClassDefFound será el resultado cuando se ejecute, por ejemplo, el jar ejecutable resultante creado y basado en la falta de coherencia de protección. Algunos lo llaman proguard "Infierno"

carl
fuente
0

Uso el complemento FileSync para Eclipse para poder depurar en vivo en Tomcat y recibí NoClassFoundErrorporque había agregado una entrada de sincronización para el bindirectorio en el espacio => classesde trabajo de Eclipse en metadataTomcat, pero no había agregado también una sincronización de carpetas para el extlibdirectorio en Eclipse=>

C:\Users\Stuart\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps\myApp\WEB-INF\lib

Stuart Cardall
fuente
0

Estoy desarrollando una aplicación basada en Eclipse, también conocida como RCP (Rich Client Platform) . Y he estado enfrentando este problema después de refactorizar (mover una clase de un complemento a uno nuevo).

La limpieza del proyecto y la actualización de Maven no ayudaron.

El problema fue causado por el Activador de paquete que no se actualizó automáticamente. La actualización manual de Bundle-Activator en MANIFEST.MF en el nuevo PlugIn ha solucionado mi problema.

Aleksandr Khomenko
fuente
0

Si recientemente agregó soporte multidex en Android Studio de esta manera:

// To Support MultiDex
implementation 'com.android.support:multidex:1.0.1'

para que su solución se extienda desde MultiDexApplication en lugar de Application

public class MyApp extends MultiDexApplication {
do01
fuente
0

Si está utilizando más de un módulo, debería tener

dexOptions {
    preDexLibraries = false
}

en su archivo de compilación.

Matin Petrulak
fuente
0

Compruebe eso si tiene un controlador estático en su clase. Si es así, tenga cuidado, ya que el controlador estático solo podría iniciarse en un hilo que tiene un bucleador, el bloqueo podría desencadenarse de esta manera:

1.primero, cree la instancia de clase en un hilo simple y detecte el bloqueo.

2.A continuación, llame al método de campo de Class en el subproceso principal, obtendrá NoClassDefFoundError.

Aquí está el código de prueba:

public class MyClass{
       private static  Handler mHandler = new Handler();
       public static int num = 0;
}

en su método onCrete de Actividad principal, agregue la parte del código de prueba:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //test code start
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                MyClass myClass = new MyClass();
            } catch (Throwable e) {
                e.printStackTrace();
            }
        }
    }).start();

    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    MyClass.num = 3;
    // end of test code
}

hay una manera simple de arreglarlo usando un controlador manejador Thread to init manejador:

private static Handler mHandler;
private static HandlerThread handlerThread = new HandlerThread("newthread");
static {
    handlerThread.start();
    mHandler = new Handler(handlerThread.getLooper(), mHandlerCB);
}
Miguel
fuente
0

No use clases de prueba fuera del módulo

No tengo una solución, solo otro sabor del caso "presente en la compilación, ausente en el tiempo de ejecución".

Intenté usar un método muy conveniente de una clase de prueba JUnit de otra clase de prueba que reside en un módulo diferente. Es un no-no, ya que el código de prueba no es parte del jar empaquetado, pero no me di cuenta porque parece visible para la clase de usuario desde Eclipse.

Mi solución fue colocar el método en una clase de utilidades existente que es parte del código de producción.

manuelvigarcia
fuente
0

En mi entorno, encuentro este problema en la prueba unitaria. Después de agregar una dependencia de biblioteca a * .pom, eso se solucionó.

p.ej:

mensaje de error:

java.lang.NoClassDefFoundError: com/abc/def/foo/xyz/Iottt

pom:

<dependency>
    <groupId>com.abc.def</groupId>
    <artifactId>foo</artifactId>
    <scope>test</scope>
</dependency>
Lin místico
fuente
0

Recibí este error después de un cambio de rama de Git. Para el caso específico de Eclipse, había líneas perdidas en el directorio .settings para el archivo org.eclipse.wst.common.component. Como puede ver abajo

Restaurar las dependencias del proyecto con Maven Install ayudaría.

ingrese la descripción de la imagen aquí

Leonardo
fuente
0

si está usando gradlew, vaya ./gradle/wrapper/gradle-wrapper.propertiesy cambiedistributionUrl a la versión correcta de gradle.

Si está utilizando JDK14 intente

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
ehacinom
fuente
-1

Sucede mucho con mis dispositivos genymotion. Asegúrese de tener una buena cantidad de memoria disponible en su unidad donde está instalado Genymotion.

totteire
fuente
¿Tienes alguna referencia para eso?
Wai Ha Lee
Nop, me quedo sin espacio en el disco regularmente y, a menos que libere una buena cantidad + elimine / reinstale un dispositivo virtual Genymotion, sigo recibiendo este error.
totteire