Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Google Play APK y Android Studio APK (depuración USB) se comportan de forma diferente

He publicado una pregunta anteriormente: 'No args constructor para la clase no existe', pero lo hace y recibió una respuesta que funcionó cuando lo probé usando el modo de depuración USB en mi teléfono a través de Android Studio. Sin embargo, cuando empujé la aplicación a Google Play, ésta deja de funcionar y provoca el mismo error que describí en esa pregunta. Repetí la prueba hoy y sucede lo mismo.

Para aclarar, estoy probando el:

  • Exacta el mismo código
  • En el mismo teléfono
  • Ejecutar la misma versión de Android
  • Utilizar exactamente la misma imagen

¿Hay alguna razón por la que el APK de Google Play se comportaría de manera diferente al Android Studio APK? ¿O me estoy perdiendo algo?

  • Java.lang.IllegalStateException: Se esperaba BEGIN_ARRAY pero era BEGIN_OBJECT en la línea 1 de la columna 2
  • Android Twitter Conflicto del SDK de la tela con Google GSON
  • Utilizando GSON para analizar y colocar en una lista de objetos
  • GSON esperaba BEGIN_ARRAY pero era BEGIN_OBJECT
  • No se puede analizar la matriz Json con Gson
  • Comprobando si existe subobjeto en JSON
  • Gson deserializa json con diferentes tipos de valor
  • Serializar un SparseArray <T> con GSON
  • 3 Solutions collect form web for “Google Play APK y Android Studio APK (depuración USB) se comportan de forma diferente”

    Dependiendo de la configuración de build.gradle , las versiones de release usualmente ejecutan ProGuard en su código. debug versiones de debug usualmente no ejecutan estas herramientas en el código.

    Así que lo que podría haber sucedido es que ProGuard corrió sobre su código, encontró que MwVolleyApi$Page no se utiliza en ninguna parte, y lo eliminó.

    Para probar esta teoría, en su build.gradle apague minifyEnabled :

     release { minifyEnabled false ... } 

    A continuación, crear un release-apk, y probarlo.

    BTW, siempre debes probar los apks de liberación en tu dispositivo antes de subirlos a Google Play, puedes instalarlos a través de adb install o copiarlos en la tarjeta sd e instalarlos desde la aplicación Downloads en tu teléfono.

    Si esto soluciona el problema, puede agregar reglas a su archivo proguard.cfg para guardar la clase Page de su eliminación, algo así como:

     -keep class fr.free.nrw.commons.upload.MwVolleyApi$Page {*;} 

    A continuación, puede volver minifyEnabled a true y volver a probar

    Intente crear la compilación de depuración con proguard y ver si el problema se replica. En su build.gradle haga esto:

     buildTypes { all{ // Place all proguard files proguardFile 'proguard/proguard-rules.pro' proguardFile getDefaultProguardFile('proguard-android.txt') } } 

    Creo que el apk que está construyendo desde su Android Studio es la versión de depuración, que es el usuario para la depuración durante el desarrollo. El apk que se publica en Google Play Store es la versión de lanzamiento de tu aplicación.

    También puede crear una versión de Android Studio y ver que será exactamente la misma versión que se encuentra en la tienda de reproducción.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.