open manually how from files descargar android installation apk android-install-apk

android - manually - ¿Qué es el error INSTALL_PARSE_FAILED_NO_CERTIFICATES?



install apk android 8 (15)

Estaba intentando cambiar mi actividad predeterminada / principal / de inicio (como lo llame) editando el archivo androidmanifest.xml . Todo lo que hice fue cambiar la propiedad android:name . sin embargo, esto rompió completamente la aplicación completa. cuando intento instalarlo, falla y lee

Error de instalación: INSTALL_PARSE_FAILED_NO_CERTIFICATES

cuando traté de volver a cambiarlo a su estado anterior, todavía me estaba dando el mismo error ... ¿¡qué he hecho!?!?!


¿ AndroidManifest.xml el AndroidManifest.xml directamente en el archivo .apk ? Si es así, eso no funcionará.

Cada Android .apk debe estar firmado si se va a instalar en un teléfono , incluso si no se está instalando en Market. Las herramientas de desarrollo funcionan alrededor de esto al firmar con un certificado de desarrollo, pero el .apk todavía está firmado.

Un uso de esto es para que un dispositivo pueda decir si una .apk es una actualización válida para una aplicación instalada, ya que si se trata de los Certificados, será la misma.

Por lo tanto, si realiza algún cambio en su aplicación, deberá reconstruir el .apk para que se firme correctamente.


Al establecer la variable de entorno JAVA_HOME en JDK 5 o 6 (en lugar de JDK 7), se corrigió el error.


Descubrí que este error ahora también puede ocurrir cuando se usa la configuración de firma incorrecta. Como se describe here , Android 7.0 presenta un nuevo esquema de firma, V2 . El esquema V2 firma el APK completo en lugar de solo el JAR, como se hace en el esquema V1. Si solo firma con V2 e intenta instalar un objetivo anterior a la versión 7.0, obtendrá este error ya que los JAR no están firmados y el PackageManager anterior a la 7.0 no puede detectar la presencia de la firma de la APK V2.

Para ser compatible con todos los sistemas de destino, asegúrese de que el APK esté firmado con ambos esquemas al marcar ambos cuadros de versión de firma en el diálogo Generar firmado de Android Studio como se muestra aquí:

Si solo se prevén 7.0 objetivos, entonces no hay necesidad de incluir la firma V1.


Descubrí que esto fue causado por mi versión de JDK.

Estaba teniendo este problema con ''hormiga'' y fue debido a esta PRECAUCIÓN mencionada en la documentación:

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

Precaución: a partir de JDK 7, el algoritmo de firma predeterminado ha cambiado, lo que requiere que especifique los algoritmos de firma y resumen (-sigalg y -digestalg) cuando firma un APK.

Tengo JDK 7. En mi registro Ant, utilicé -v para verbose 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 lo redirigí, pero dio 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)

Encontré que respondió aquí.

Cómo lidiar con INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES sin desinstalación

¡Solo necesitaba 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 build.xml para usar esas opciones cuando firmo!

Ok aquí está: C: / Archivos de programa / Java / android-sdk / tools / ant / build.xml

<signjar sigalg="MD5withRSA" digestalg="SHA1" jar="${out.packaged.file}" signedjar="${out.unaligned.file}" keystore="${key.store}" storepass="${key.store.password}" alias="${key.alias}" keypass="${key.alias.password}" verbose="${verbose}" />


Después de un tiempo y varios hilos en línea sobre el tema, pude arreglar mi proyecto.

Principalmente se toman en cuenta los últimos archivos ( pueden ser imágenes o diseños ) que usted ingresa. Si los elimina, funcionará y podrá construir su proyecto nuevamente.


En mi caso, pude compilar y ejecutar compilaciones de lanzamiento, pero obtuve el error INSTALL_PARSE_FAILED_NO_CERTIFICATES al intentar hacer una compilación de depuración.

La solución fue eliminar mi archivo debug.keystore y dejar que ADT lo recree. Aparentemente había expirado.

Una mejor solución a largo plazo es crear explícitamente un debug.keystore que no caduque después de solo un año, en lugar de dejar que ADT lo cree. Aquí está el comando para hacer eso:

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000

Cuando se le solicite, ingrese estos valores:

  • Nombre y apellido: Android Debug
  • Unidad organizativa: Android
  • Nombre de la organización: Desconocido
  • Ciudad o Localidad: Desconocido
  • Estado o provincia: Desconocido
  • Código de país: US

Es porque la generación y la corriente generadas previamente están teniendo conflictos en la versión de firma entre v1 (firma de jar) y v2 (Firma de APK completa),

Para corregir, marque la versión de firma adecuada en el cuadro de diálogo Generar archivo de APK firmado


Esta es una solución fea pero rápida: use JDK 6 en lugar de 7.

Después de leer la respuesta de Chloe, desinstalé mi JDK 7 (actualmente no lo necesito de todos modos) e instalé JDK 6. Eso lo solucionó. Una solución mejor haría que hormiga use JDK 6 (sin desinstalar 7). Tal vez sea posible cambiar / configurar esta propiedad:

java.library.path

en el archivo local.properties. Está en el directorio del proyecto (raíz).

Android, de todos modos, no funciona con JDK 7 (solo 6 o 5), así que hacer que el script ant también use JDK 6 o 5 es probablemente una buena solución.


Estaba teniendo este error en mi consola de Eclipse. Resultó que tenía dos jarras con el mismo contenido pero diferentes nombres y que estaban en conflicto entre sí. Acabo de eliminar uno de ellos y logré instalar la aplicación en el dispositivo.


Esto podría suceder si intenta incluir una biblioteca .jar que contiene un archivo AndroidManifest.xml .

  • Si es Java puro, asegúrese de no incluirlo en la exportación .jar
  • Si no es Java puro (lo que significa que es un proyecto de Android), entonces debe incluirlo como un Proyecto de biblioteca.

La mayoría de las veces la solución para este error es realmente simple:

  1. Desinstala tu apk.
  2. Limpia tu proyecto de Android.
  3. Construye tu proyecto de Android.
  4. instala / ejecuta tu apk

Que te diviertas


Obtuve este error cuando traté de instalar un proyecto Xamarin basado en la vista previa de Android N en un teléfono con una API v23. La solución es no hacer eso.


Otra forma de obtener este error es crear usando ant en macOS y tener un archivo de ícono de Finder ( Icon/r ) en el árbol fuente de la aplicación. Parece que jarsigner no puede hacer frente al retorno de carro en el nombre de archivo y, aunque jarsigner que la firma es válida si -verify el APK, siempre resulta en una APK que no se instalará en un dispositivo. Irónicamente, el complemento Google Drive Finder es una gran fuente de archivos de íconos de Finder.

La solución es excluir los archivos ofensivos (que de todos modos son inútiles en la APK) con un especificador como este en el conjunto de fileset :

<exclude name="**/Icon&#13;" />


Recibí este error porque publiqué que mi ant release estaba fallando porque me quedé sin espacio en el disco.