Estou preso com mais ou menos exatamente o mesmo problema e encontrei um defeito aberto no assunto que faz sentido ...
https://code.google.com/p/android/issues/detail?id=174566
Minha solução alternativa - embora não seja a melhor solução - é nunca fazer a revisão do banco de dados e acompanhar isso sozinho, nunca chamando
onUpgrade()
e faça uma atualização manualmente ao atualizar o aplicativo. Alternativamente, se você tem um banco de dados pequeno que é somente leitura, você pode acionar a cópia do banco de dados em ativos em cada
onCreate()
em DBHelper
class, mas isso pode causar problemas indesejados se o sistema de arquivos estiver cheio, portanto, faça isso enquanto procura uma solução melhor. @Override
public void onCreate(SQLiteDatabase db) {
// Workaround for Issue 174566
myContext.deleteDatabase(DB_NAME);
try {
copyDataBase();
}
catch(IOException e) {
System.out.println("IOException " + e.getLocalizedMessage());
}
}
Meu aplicativo agora é atualizado como deveria com minha solução alternativa e, ao julgar quanto tempo passou desde que esse defeito foi levantado originalmente, talvez nunca seja corrigido ...
Lamento que esta não seja uma solução completa para o problema, mas é um caminho a seguir, pelo menos.