el file para la biblioteca requerida no se pudo leer o no es un file ZIP válido

Antes de llegar al problema, déjenme explicar lo que hice que me ha llevado al problema.

  1. Creé una count en github e hice un repository llamado Android.
  2. Luego instalé el cliente github en mi Windows 7.
  3. Luego abrí este cliente, proporcioné mi authentication y cloné el repository en un directory local C:\Users\Aniket\Documents\GitHub\Android (Esta carpeta tiene la carpeta .git ).
  4. Luego fui a mi Eclipse ADT e instalé el plugin de EGit como se describe aquí . También yo
  5. Luego, en Eclipse, hago clic derecho en mi proyecto TicTacToe voy a Team->Share Project y proporciono mi ruta de repository, es decir, C:\Users\Aniket\Documents\GitHub\Android .
  6. Mi proyecto se agregó al repository local y en mi cliente github me muestra todas las opciones para confirmar el file en el repository real en el sitio github.
  7. Pero mi proyecto muestra de repente un error con un '!' Rojo firmar en él.

    Descripción -> Archivo para la biblioteca requerida: 'C: / Users / Aniket / AndroidWorkspace / TicTacToe / libs / android-support-v4.jar' en el proyecto 'TicTacToe' no se puede leer o no es un file ZIP válido

    Recurso -> TicTacToe

    Ubicación de ruta -> Ruta de compilation

    Tipo -> Problema de ruta de compilation

Nota: el error fue una sola línea que se muestra en la console de error en Eclipse. Simplemente lo dividí por legibilidad.

Incluso después de separar el repository, muestra ese error.

Alguien ha encontrado este escenario antes. ¿Cuál es la solución o solución alternativa? Busqué en Google y los primeros enlaces sugieren que es un error de Eclipse. Por favor, sugiera qué se puede hacer para que mi proyecto vuelva a ser ejecutable.

Puede ser un error de Eclipse. He enfrentado el problema similar varias veces. el cierre y la reapertura del proyecto funciona en algún momento. si no funciona intente reiniciar Eclipse.

He visto el mismo problema. Quité ese file jar, y luego clic con el button derecho sobre el proyecto, seleccioné maven y hago "update project …". El contenedor se descargó nuevamente y el problema desapareció.

Hay otro caso para mostrar el file de error para la biblioteca requerida

Haga clic derecho en el proyecto y abra -> proyecto de properties del proyecto -> ruta de compilation de java -> Android libre libs

si hay dos files jar con el mismo nombre, elimine uno de libs.

El file jar puede ocultarse algunas veces, luego abrir la carpeta libs en la window y comprobar si hay files ocultos. Organizar -> carpetas y opciones de búsqueda -> ver -> comprobar mostrar files ocultos y eliminar el file jar oculto , el mismo cass delete si existen javas ocultas en src y packages si hay

¡Parece que todos tienen una historia diferente para contar! Para mí, tuve que eliminar el error de la pestaña Marcadores de eclipse, y luego limpié el proyecto nuevamente. Antes de eso, cerré y volví a abrir el proyecto / eclipse varias veces como lo sugirió @rachit, lo cual no me funcionó.

En mi caso, había descargado un proyecto de Internet, después de descomprimir el proyecto, algunos files habían sido bloqueados, simplemente desbloqueaba files y lo intentaba de nuevo, entonces el problema estaba resuelto.

En mi caso probé todos los consejos sugeridos pero el error permaneció. Resolví cambiar la versión por una más reciente y escribir eso en el pom.xml. Después de esto, todo está bien ahora.

En mi caso, reiniciar Eclipse no resolvió el problema. Reinicié la computadora e hice un Project -> Clean en eclipse

estaba enfrentando el mismo problema en Eclipse Mars. Descargué los flasks de [ https://oss.jfrog.org/webapp/#/artifacts/browse/tree/General/repo/org/ethereum/ethereumj-core/1.0.0-SNAPSHOT%5D%5B1%5D y lo reemplacé en el directory.

Obtuve un error al agregar ethereum.jar usando pom.xml en C: \ Users {machineName} .m2 \ repository \ org \ ethereum \ ethereumj-core \ 1.0.0-SNAPSHOT \ ethereum-core-1.0.0-SNAPSHOT.jar , agregué el file descargado (ethereum-core-1.0.0-SNAPSHOT.jar) aquí y el problema fue resuelto.

No encontré duplicates en ninguna parte e intenté reiniciar eclipse, rebuild proyecto. Recibía el error de una sola biblioteca. Así que intenté cambiar el nombre del file jar de ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar a ksoap2-2.5.8.jar

Entonces, si ninguno de los problemas resuelve desde arriba, también puedes probar este

Una solución que funcionó para mí: vaya a *.classpath y elimine la línea: <classpathentry kind="lib" path="the_problematic_class.java"/>

Podría ser debido a files jar dañados también. Es mejor verificarlo primero ya que esa fue la razón en mi caso:

  jar tf myjar.jar 

debería enumerar el contenido dentro.

En mi caso, la installation de Java no era adecuada. Entonces, desinstalé Java y reinstalé una nueva versión. Ahora funciona.

Para nosotros, el problema parecía ser el tamaño del file .jar. Recomendaría hacer la siguiente testing para ver si este es el caso o al less descartarlo. Primero, eche un vistazo a otros files jar en su proyecto Eclipse y compárelos con el contenedor problemático. ¿Es mucho más grande que los demás? De ser así, intente con la siguiente solución. De lo contrario, esta respuesta probablemente no te ayudará. Antes de comenzar, configure Windows para tratar files .jar como files .zip con el siguiente command de línea de command:

assoc .jar=CompressedFolder (ver https://superuser.com/questions/121540/can-you-configure-windows-to-open-jar-files-like-zip-files-without-a-3rd-party-t )

Opcional: una testing simple

Antes de intentar la solución alternativa, aquí hay una testing para ver si realmente es el tamaño del file jar lo que lo está provocando.

  1. Crea un file .jar lleno de files .class aleatorios que no estén en tu contenedor problemático. Puede hacerlo creando una carpeta llena de files, comprimiéndola y cambiando el nombre de la extensión .zip a .jar. Windows podría advertirte sobre el cambio de la extensión. Ignora esto. Asegúrese de tener suficientes files en la carpeta para que sea un poco más grande que el jarro problemático.
  2. Intenta importar este jar creado artificialmente. Si falla con el mismo error, entonces el tamaño probablemente sea el problema.

La solución

Si el problema es el tamaño, que es posible que haya identificado haciendo la testing simple opcional anterior, puede intentar la siguiente solución.

  1. Descomprime tu file .jar. Deberías poder hacer esto fácilmente en Windows
  2. Divida la carpeta que obtiene desde el paso 1 en subcarpetas más pequeñas. Pueden ser solo dos carpetas, o más, dependiendo de qué tan grande sea el original. Desea que las carpetas sean más pequeñas que algunas de sus jarras "buenas" existentes para que el tamaño no sea un problema. Asegúrese de mantener intacta la estructura del package cuando haga esto.
  3. Comprime todas las carpetas que creaste en el paso 2 y cambia el nombre de .zip a .jar.
  4. Importe todos los .jars del paso 3 individualmente.

Los pasos pueden ser un poco confusos, así que aquí hay un ejemplo. Imagine que su file jar se llamaba mylib.jar. Usted descomprime esto en una carpeta llamada mylib. En el interior, digamos que hay tres subcarpetas llamadas package1, package2 y package3. Cree 3 carpetas llamadas mylib1, mylib2 y mylib3, y ponga en package1, package2 y package3 respectivamente. A continuación, zip estos y renombre la extensión a .jar. A continuación, importará mylib1.jar, mylib2.jar y mylib3.jar.

Para la aplicación web Java, se agregó web.xml como jar en el proyecto. En Project Explorer, intente encontrar web.xml como en el ícono de jar y elimínelo del proyecto. ¡El error desaparecerá!