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


Cómo probar la actualización de la base de datos sqlite antes de cargar la nueva versión de mi aplicación en la tienda de juegos en android

Estoy recibiendo un problema que no encontró tabla "nombre_tabla" en mi aplicación cargada después de actualizar la versión de la aplicación. Salí después de las pruebas Estoy recibiendo este problema sólo después de actualizar la versión antigua de la aplicación a la nueva versión de la aplicación

Lo que he implementado

  • ¿Qué sucede cuando mi actividad se destruye cuando estoy usando IntentService con ResultReceiver
  • pre-registrar la aplicación en google play
  • ¿Por qué OnClickListener en un ViewHolder no funciona?
  • Abra la aplicación después de hacer clic en Notificación
  • ¿Cuáles son las posibles razones para la corrupción de archivos binarios en los dispositivos Android
  • Android 4.4.X: taskAffinity & launchmode vs. Ciclo de vida de la actividad
  • He hecho código en el método onUpgrade () y también actualizar la versión db en el constructor, pero no pude probarlo en el dispositivo.

    Paso 1) Aumentar el código de versión 1 a 2

    public databasehelper(Context context) { super(context, DATABASE_NAME, null, 2); this.myContext = context; try { createDataBase(); openDataBase(); } catch (IOException e) { e.printStackTrace(); } } 

    Paso 2) agregó una nueva tabla al método onUpgrade ()

     @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.e("onUpgrade db", ">>>>called"); switch (oldVersion) { case 1: db.execSQL(DATABASE_CREATE_notification_counter); Log.e("db version", ">>>"+oldVersion); // we want both updates, so no break statement here... case 2: Log.e("db version", ">>>"+oldVersion); // I removed onCreate() method from here because new version will already have the new table // onCreate(db); } } 

    Paso 3) Método onCreate () para la nueva versión de la base de datos.

     @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE_notification_counter); Log.d("oncreate db", ">>>>called"); } 

    Tengo la solución para actualizar la base de datos link1 link2 link3 link4

    Por qué no pude probarlo

    Hemos subido la aplicación de pago en la tienda de juego por lo que tengo que probar el método de actualización de db en el emulador o dispositivo utilizando dos diferentes medios de APK versión más antigua y más nueva .. y he probado en el dispositivo por primera vez con la versión antigua y luego la nueva versión (db Cambia con nueva tabla agregada en db) pero el método onUpgrade () no será llamado en este momento.

    Pregunta:

    1) ¿Cómo puedo probar la actualización db antes de actualizar la nueva versión en la tienda de juegos?

    2) ¿Llamará solamente cuando usted pone al día la versión de la tienda del juego solamente?

    Por favor ayúdame a resolver este problema.

    Las respuestas serán apreciadas. Gracias por adelantado.

  • Quitar proyecto de Android Studio
  • ¿Por qué llamar a Process.killProcess (Process.myPid ()) es una mala idea?
  • Android windowSoftInputMode = "adjustPan" desplazarse un poco más
  • ¿Cómo mostrar el número exacto de elementos en RecyclerView?
  • Eliminar la pantalla de preferencias actuales y volver a la pantalla de preferencias principales
  • Estilo de casilla de verificación personalizado en el diálogo
  • 4 Solutions collect form web for “Cómo probar la actualización de la base de datos sqlite antes de cargar la nueva versión de mi aplicación en la tienda de juegos en android”

    Versión de db almacenado dentro de db. Basta con crear un db (db_old) con una versión anterior que en su DbHelper. Utilice DbHelper para conectarse a db_old y se llamará su método onUpgrade.

    Puede utilizar su base de datos existente como db_old, sólo decrementar su versión. Para cambiar la versión puede utilizar cualquier editor sqlite db.

    Si no desea escribir la prueba para DbHelper y desea simular la actualización de la aplicación, puede utilizar el comando adb install -r . Leer más aquí.

    Después de una larga búsqueda y prueba de mi aplicación, finalmente …

    Tengo que trabajar! En la clase createDataBase faltaba una línea:

    Acabo de agregar debajo de la línea en mi código createDataBase ()

     this.getWritableDatabase(); 

    Tenemos que dar permiso para escribir base de datos mientras creamos base de datos, este permiso será dar permiso para escribir la base de datos mientras actualizamos la aplicación desde la tienda de juegos.

    Una vez abierto correctamente, la base de datos se almacena en caché, por lo que puede llamar a este método cada vez que necesite escribir en la base de datos. (Asegúrese de llamar a close () cuando ya no necesite la base de datos). Errores como permisos incorrectos o un disco completo pueden hacer que este método falla, pero los intentos futuros pueden tener éxito si el problema se soluciona.

    La actualización de la base de datos puede tardar mucho tiempo, no debería llamar a este método desde el subproceso principal de la aplicación, incluido ContentProvider.onCreate ().

     public void createDataBase() throws IOException { boolean dbExist = checkDataBase(); if (!dbExist) { this.getReadableDatabase(); try { // ---If not created then copy the database--- copyDataBase(); } catch (IOException e) { throw new Error("Error copying database"); } } else { /* This line: that has been solve my problem */ this.getWritableDatabase(); } } 

    Public void openDataBase () lanza SQLException {

      // --- Open the database--- String myPath = path + DATABASE_NAME; myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE); // you also have to add open_readwrite condition here /*onUpgrade(myDataBase, 1, 2);*/ // no need to call upgrade here it will be called automatically } 

    Usted tiene que dar la condición de escritura de lectura mientras abre la base de datos.

    Además se llama onUpgrade () cuando se crea un nuevo objeto de la clase DataBaseHelper pero sólo si los números de versión de la base de datos no coinciden. Así que esto significa que no hay necesidad de llamar onUpgrade "por su cuenta". Si publica una actualización de su db, sólo incremente la versión nr por uno y aplique los cambios en el método onUpgrade ().

    Lo conseguí desde el enlace dado:

    Base de datos onUpgrade – oldVersion – newVersion

    Espero que esto ayude a cualquier persona para el futuro desarrollador!

    Cómo probar la actualización de la base de datos sqlite sin descargar la nueva aplicación de la versión de la tienda de juegos en android

    1) ¿Cómo puedo probar la actualización db antes de actualizar la nueva versión en la tienda de juegos?

    He descargado plugin de navegador sqlite para eclipse desde aquí

    http://sourceforge.net/projects/sqlitebrowser/

    Y compruebe este tutorial sobre cómo usar el complemento sqlite

    http://www.coderzheaven.com/2011/04/18/sqlitemanager-plugin-for-eclipse/

    Sólo copie el frasco del primer enlace y pegue en su carpeta de instalación de eclipse llamada plugin y reinicie eclipse

    A continuación, iniciar un emulador y navegar a su paquete de DDMS y puede ver su base de datos sqlite y comprobar si los cambios que hizo a las tablas existe o no

    Puede instalar apk de diferentes fuentes que Playstore (si está habilitado en su teléfono). La forma más sencilla de enviarlo al teléfono por correo electrónico o copiar el apk a través del cable USB.

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