NoSuchFieldError: No hay campo estático listView1 de tipo I en la clase Lcom / disdemo / R $ id; o sus superclases

89

Tengo module1 (en Android Studio) con listView1 en activity_main.xml(presente en res del module1). MainActivity de este módulo se inicia desde otro módulo2 en el mismo proyecto de Android Studio.

Intenté eliminar el module1 y nuevamente crear uno nuevo con los mismos archivos res y java. Todavía tengo el mismo problema.

Komal Gupta
fuente
He agregado el módulo en settings.gradle y build.gradle
Komal Gupta
14
También tenía el diseño activity_main.xml en uno de mis otros módulos, por lo que recibía este error NoSuchField. Cambié el nombre del diseño en uno de mis módulos y funcionó.
Komal Gupta
Ojalá leyera su comentario hace 48 horas, ¡estaba luchando con este problema desde hace 2 días!
Mani
2
Mi caso fue un poco diferente, ya que había movido un recurso de cadena de un módulo a otro. En mi caso, solo tuve que hacer clic en Construir> Limpiar en Android Studio para solucionar el problema.
Tony Wickham
Sí, para usted no fue un problema de archivo de recursos duplicado, así que limpio -> la compilación funcionó.
Komal Gupta

Respuestas:

202

Creo que tiene un diseño tanto en la biblioteca como en el módulo con el mismo nombre o inflando varios diseños xml con una identificación de recurso duplicada.

JosephM
fuente
4
Sí, exactamente ese fue el caso. Lo descubrí pronto, pero lo triste es que se perdió mucho tiempo en esto, ya que el mensaje de error no era lo suficientemente intuitivo. Android Studio debería comenzar a registrar mensajes de error más completos.
Komal Gupta
7
¡suena bien! ahora debe marcarlo como aprobado para que pueda ayudar a otro a resolver este tipo de problema.
JosephM
1
Si usa refactor-rename de AS, cambia el nombre de todas las apariciones de activity_main.xml, por ejemplo , mejor hágalo a mano.
serv-inc
Recibí este error debido a dos diseños con el mismo nombre en la aplicación y el módulo. ¡Gracias!
Sandeep Yohans
31

En ambos módulos, tiene un activity_main.xml. Cambie el nombre de un archivo.

Actualización: Lo que @kundan kamal quiere expresar es que tiene un archivo de diseño en ambos módulos con un nombre similar.

kundan kamal
fuente
2
esto desperdiciado por 3 horas :(. me salvas el día
karthik kolanji
8

ha utilizado varios módulos y da el mismo nombre de cualquier diseño xml, luego dé este error, así que cambie el nombre de su diseño xml.

usuario7176550
fuente
Gracias. Ayudó
Vigneswaran A
0

Este tipo de error me sucedió una vez, pero con un stringrecurso. Tenía la cadena configurada en un archivo de traducción, pero no en el archivo de recursos de cadena predeterminado, por lo que esto produjo el bloqueo.

blastervla
fuente
0

Hazme correcto Si no me equivoco ... Creo que tienes el mismo nombre de tu biblioteca y módulo en tu proyecto, así que tienes que cambiar el nombre de uno de ellos, entonces funciona bien

Mannu saraswat
fuente
0

Para mí, las reglas proguard funcionaron. Tenía proguard de dos niveles. Primero en mi dependencia y luego en mi aplicación. Tuve que hacer esto en mi gradle de dependencia.

Preservar R .. cosas.

-keepclassmembers class **.R$* {
    public static <fields>;
}

Conserve todos los nombres de métodos nativos y los nombres de sus clases.

-keepclasseswithmembernames class * {
    native <methods>;
}
Mohit Singh
fuente