2011-06-08 35 views
15

A riesgo de repetir lo que parece ser una queja muy común, creo que tengo una variación sustancial en este error.Error de instalación: INSTALL_PARSE_FAILED_NO_CERTIFICATES

La aplicación no se instalará desde Eclipse y aparecerá en la consola: Error de instalación: INSTALL_PARSE_FAILED_NO_CERTIFICATES.

LogCat proporciona algo de iluminación: El paquete com.xxx no tiene certificados en la entrada assets/fonts/helvetica_neue.ttf; ¡postergación!

Lo que significa que el dispositivo (o emulador) cree que este archivo en particular no se ha firmado.

Las soluciones habituales propuestas para esto son:
- Cambie el nombre del archivo ofensivo. Lo intentamos, luego se queja del siguiente archivo, luego del siguiente, y así sucesivamente.
- Agregue un archivo ficticio. Intenté eso también. Se queja del nuevo archivo, independientemente de cómo se llame.
- Compila para mayor que Android 1.6. Estamos compilando para 2.3.

Vale la pena señalar que esto solo ocurre cuando lanzamos una prueba unitaria. Podemos instalar la aplicación "real" por sí mismo sin dificultades. También usamos Maven y, por supuesto, el complemento Maven de Android.

Cualquier idea o sugerencia sería muy bienvenida y, por supuesto, si la resolvemos por nuestra cuenta publicaré cualquier hallazgo.

Respuesta

2

Esto se soluciona ahora. En caso de que alguien se encuentre con la misma configuración de proyecto única y error, la solución puede ser de algún valor.

El problema surgió de la configuración de nuestros directorios de recursos en el POM de nuestro proyecto de prueba (el proyecto que contiene nuestras pruebas unitarias). Señalaron los directorios de recursos del proyecto que se está probando. Esta configuración debería funcionar, así que voy a adivinar que es un error en el complemento Maven de Android que hace que los recursos sigan sin firmar.

Así que la solución fue eliminar las referencias a directorios de recursos externos (no puedo decir por qué se hizo así inicialmente pero eliminarlos parece no tener efectos negativos) y configurar los directorios de recursos de la manera estándar (tomando como ejemplo, el POM proporcionado por el arquetipo del proyecto maven plugin con pruebas).

1

he tenido este problema con Motodev 3.0.0

La solución fue eliminar emulador y crear una nueva.

De hecho, no necesita eliminar el antiguo emulador, simplemente cree uno nuevo y la instalación se realiza sin problemas.

9

Encontré que era debido a mi versión JDK. Estaba teniendo este problema con 'hormiga' y fue debido a este PRECAUCIÓN mencionado en la documentación:

http://developer.android.com/guide/publishing/app-signing.html#signapp

Caution: As of JDK 7, the default signing algorithim has changed, requiring you to specify the signature and digest algorithims (-sigalg and -digestalg) when you sign an APK.

que tienen JDK 7. No puedo hablar por su Maven, pero es probablemente el mismo problema.En mi registro Hormiga, solía -v para prolijo y mostró

$ ant -Dadb.device.arg=-d -v release install 
[signjar] Executing 'C:\Program Files\Java\jdk1.7.0_03\bin\jarsigner.exe' with arguments: 
[signjar] '-keystore' 
[signjar] 'C:\cygwin\home\Chloe\pairfinder\release.keystore' 
[signjar] '-signedjar' 
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unaligned.apk' 
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unsigned.apk' 
[signjar] 'mykey' 
[exec]  pkg: /data/local/tmp/PairFinder-release.apk 
[exec] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] 

firmé el JAR manualmente y alineado con zipalign, pero le di un error ligeramente diferente:

$ "$JAVA_HOME"/bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore release.keystore -signedjar bin/PairFinder-release-unaligned.apk bin/PairFinder-release-unsigned.apk mykey 
$ zipalign -v -f 4 bin/PairFinder-release-unaligned.apk bin/PairFinder-release.apk 
$ adb -d install -r bin/PairFinder-release.apk 
     pkg: /data/local/tmp/PairFinder-release.apk 
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] 
641 KB/s (52620 bytes in 0.080s) 

me encontré con que respondieron aquí .

How to deal with INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES without uninstallation

sólo se necesitaba para desinstalarlo y luego funcionó!

$ adb -d uninstall com.kizbit.pairfinder 
Success 
$ adb -d install -r bin/PairFinder-release.apk 
     pkg: /data/local/tmp/PairFinder-release.apk 
Success 
641 KB/s (52620 bytes in 0.080s) 

Ahora solo necesito modificar el build.xml para usar esas opciones al iniciar sesión!

+0

Acabo de mirar esta respuesta por segunda vez, que yo no pudiera dar una segunda upvote. ¡Añadiendo '-digestalg SHA1' lo hizo por mí! – Luc

14

Me encontré con esto a través de la depuración normal, aunque es poco probable que ayude todo el tiempo, simplemente vaya a Proyecto -> Limpiar y reconstruir todo puede ser suficiente para borrar el error.

+0

Esto resolvió mi problema. – xori

+0

Esto no resolvió mi problema. – fobbymaster

0

elegir Java SE 6 en la aplicación Java preferencia

1

tenía el mismo problema, era que estaba configurado para utilizar la App Store en lugar de depuración bajo la configuración de destino Android, y yo no había puesto en el tienda de aplicaciones todavía. Cambié a la depuración y estaba bien.

1

Para los que tienen este problema ...

Seleccionar V1 (firma frasco) en lugar de V2 (firma apk completo)

Selección V2 también podría causar este problema.

enter image description here

Cuestiones relacionadas