tengo studio saber que generate generar firmar configurar como cambiar app actualizar android android-gradle apk android-manifest

studio - Los usuarios de la aplicación de Android obtienen "Aplicación no instalada" cuando intentan actualizar



generar apk android studio sin firmar (5)

Hay un error tipográfico en el archivo de manifiesto en la línea android:largeHeap="true">> . La línea xml termina con >> . Esto puede estar causando el error.

ACTUALIZACIÓN: para aquellos que preguntaron qué códigos de error están recibiendo los usuarios: no hay códigos de error. Simplemente abre una página en blanco posterior a la instalación que dice "La aplicación no se instaló" con una gran "X" al lado. Es posible que diferentes versiones de Android puedan tener diferentes mensajes. No hay ninguna indicación de lo que salió mal durante la instalación.

ACTUALIZACIÓN 2: Algunos usuarios informaron que reciben el código de error "-504" cuando intentan instalar / actualizar desde Play Store, y el mensaje "la aplicación no está instalada" cuando intenta instalar manualmente el .apk. No sé qué correlación tiene este error con los usuarios que no pueden instalar, pero las soluciones de las únicas 2 preguntas sobre SO sobre este tema no solucionaron nada para mí. He incluido los manifiestos actualizados y los archivos de compilación.

ACTUALIZACIÓN 3: Aparece cuando los usuarios informan este problema en versiones después de que IAB se haya instalado con éxito, lo que elimina la legitimidad del concepto de que este problema se debe a la introducción de IAB.

ACTUALIZACIÓN 4: Parece que el problema es con usuarios antiguos que intentan actualizar a una nueva versión, y no con usuarios nuevos. Teniendo esto en cuenta, es muy probable que este problema se INSTALL_FAILED_UID_CHANGED . Mirando a través del historial de versiones, el cambio significativo que hice en la versión problemática que los usuarios no pueden actualizar es la eliminación de elementos dibujables que ya no pretendía usar.

Pedirle a los usuarios que realicen el procedimiento para solucionar este problema no es plausible. Si hay una solución que puedo aplicar que lo solucionaría para usuarios defectuosos, maravilloso ... de lo contrario, lo menos que puedo hacer en este momento es el control de daños y garantizar que esto no suceda en el futuro.

NOTA: A continuación se muestra la publicación original que especula que el problema es el resultado de la introducción de IAB en la aplicación. Desde entonces, es cada vez más improbable que esa sea la causa. En cualquier caso, la publicación todavía tiene información relevante.

------------------------------------------------------------------------------------------

Título original: los usuarios de la aplicación de Android obtienen "Aplicación no instalada" después de presentar IAB

Recientemente introduje IAB en mi aplicación que se publicó en Google Play. Después de un tiempo, comencé a recibir informes de algunos usuarios de que recibían un error de "instalación fallida" cuando intentaban instalarlo o actualizarlo. Lo que me hace pensar que se debe a la introducción de IAB es que un usuario en particular desde hace mucho tiempo me envió un correo electrónico que, cuando intenta actualizar la versión con IAB, el instalador menciona que se introdujeron nuevos permisos y requiere el permiso del usuario. Una vez concedido, dice que la aplicación no se pudo instalar.

He hecho algunas búsquedas en Google y parece ser un problema desde su finalización, un usuario incluso intentó instalar manualmente un .apk con dichos permisos eliminados sin ningún éxito. No quiero asegurarme de que no es algo que he hecho mal, sino una inevitabilidad que tengo que aceptar con algunos usuarios.

Tenga en cuenta que la gran mayoría no tiene problemas para instalar la aplicación, y no he recibido ningún informe de esto hasta después de la introducción de IAB. No me molestaría tanto si fuera una pequeña cantidad de usuarios perdidos, pero el problema es que esos usuarios dañan la clasificación de mi aplicación. Los usuarios también han mencionado que pueden instalar aplicaciones, excluyendo las mías, perfectamente bien.

No descarto la posibilidad de que los usuarios hayan estado recibiendo estos errores incluso antes de que se introdujera IAB, y el enlace podría ser erróneo.

Aquí está mi manifiesto:

<?xml version="1.0" encoding="utf-8"?> <manifest package = "com.jjsoftware.fullscientificcalculator" xmlns:android = "http://schemas.android.com/apk/res/android"> <uses-permission android:name = "android.permission.VIBRATE"/> <uses-permission android:name = "com.android.vending.BILLING"/> <application android:allowBackup = "true" android:fullBackupContent = "true" android:icon = "@drawable/logo" android:label = "@string/app_name"> <activity android:name = ".MainActivity" android:hardwareAccelerated = "false" android:label = "@string/app_name" android:screenOrientation = "portrait" android:theme="@style/AppTheme"> <intent-filter> <action android:name = "android.intent.action.MAIN"/> <category android:name = "android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activity android:name = ".SettingsActivity" android:theme = "@style/PreferencesTheme"> <intent-filter> <action android:name = ".SettingsActivity"/> <category android:name = "android.intent.category.PREFERENCE"/> </intent-filter> </activity> </application>

Aquí está el archivo de Gradle:

apply plugin: ''com.android.application'' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.jjsoftware.fullscientificcalculator" minSdkVersion 14 targetSdkVersion 23 versionCode 102 versionName "1.679" } sourceSets { main { assets.srcDirs = [''src/main/assets'', ''src/main/assets/''] } } } dependencies { compile ''com.android.support:appcompat-v7:23.1.1'' compile ''com.google.android.gms:play-services-ads:8.4.0'' compile ''com.android.support:gridlayout-v7:23.2.1'' compile files(''libs/exp4j-0.4.5.jar'') compile files(''libs/EJML-core-0.28.jar'') compile files(''libs/EJML-dense64-0.28.jar'') compile files(''libs/Jama-1.0.3.jar'') compile files(''libs/EJML-simple-0.28.jar'') }

Y, si es necesario, la construcción de nivel superior:

// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath ''com.android.tools.build:gradle:1.5.0'' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } }


Quizás el error esté en el lado del usuario.

Este artículo establece lo siguiente:

Google Play - Error 504

Problema

La aplicación no se pudo descargar debido a un error.

Primera solucion

Lo habitual, por favor: vaya a Configuración> Aplicaciones> Todas> Google Play Store y Borrar caché y Borrar datos. También borrar caché y borrar datos para el marco de servicios de Google.

Segunda solucion

Intenta eliminar tu cuenta de Gmail

Esta respuesta de intercambio de pila discutió ideas similares.

De acuerdo con la lista de códigos de estado en Wikipedia , un error 504 significa lo siguiente:

Tiempo de espera de la puerta de enlace 504
El servidor actuaba como una puerta de enlace o proxy y no recibió una respuesta oportuna del servidor ascendente.

Pregunte a sus usuarios si hacer lo anterior resuelve su problema.


Recibí este error al instalar en mi dispositivo Android un nuevo APK para la aplicación que estoy desarrollando.

Revisé el registro de depuración en el dispositivo (usando "adb -d logcat> log.txt") y encontré una entrada que decía "PackageManager: Downgrade detect: la versión de actualización del código 2 es más antigua que la actual 10000". Obviamente algo salió mal con la versión de alguna manera.

Desinstalé el paquete y luego pude instalar el APK sin problemas.


Recuerde que la última versión de Android (versión Marshmallow) ha cambiado los permisos para dar más acceso a los permisos al usuario. Por lo tanto, ya no es suficiente definir los permisos en el manifiesto.

A través del código, debe asegurarse de que los usuarios habilitan el permiso de facturación cuando utilizan la aplicación. La forma más sencilla de solucionar esto es establecer el SDK de destino en v-22. Esto debería resolver temporalmente su problema.

Sin embargo, la solución real es manejar los nuevos permisos introducidos en Marshmallow. Aquí está cómo hacerlo:

@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch(requestCode) { case BILLING_REQUEST: if (canAccessBilling()) { callBillingPerms(); } break; } } private void callBillingPerms() { Toast.makeText(this, "We need your permission to access Billing", Toast.LENGTH_SHORT).show(); } private boolean canAccessSMS() { return(hasPermission(Manifest.vending.BILLING)); } @TargetApi(Build.VERSION_CODES.M) private boolean hasPermission(String perm) { return(PackageManager.PERMISSION_GRANTED==this.checkSelfPermission(perm)); }

Espero que esto ayude :)


podría ser que los teléfonos tengan una versión más baja de los servicios de Google Play que la mínima definida en el APK.

No hay mucho que pueda hacer si ese es el caso, aparte de que los usuarios actualicen sus servicios de google ( https://play.google.com/store/apps/details?id=com.google.android.gms&hl=en ) o reduce su versión.

También es posible que deba agregar lo siguiente a su manifiesto. (Creo que esto se usa para comparar las versiones instaladas en los teléfonos con las versiones requeridas por el apk)

<application ...> <!-- This meta-data tag is required to use Google Play Services. --> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application>