J'ai une base de données enregistrée dans le dossier des ressources de mes applications et je copie la base de données à l'aide du code ci-dessous lorsque l'application s'ouvre pour la première fois.
inputStream = mContext.getAssets().open(Utils.getDatabaseName());
if(inputStream != null) {
int mFileLength = inputStream.available();
String filePath = mContext.getDatabasePath(Utils.getDatabaseName()).getAbsolutePath();
// Save the downloaded file
output = new FileOutputStream(filePath);
byte data[] = new byte[1024];
long total = 0;
int count;
while ((count = inputStream.read(data)) != -1) {
total += count;
if(mFileLength != -1) {
// Publish the progress
publishProgress((int) (total * 100 / mFileLength));
}
output.write(data, 0, count);
}
return true;
}
Le code ci-dessus s'exécute sans problème, mais lorsque vous essayez d'interroger la base de données, vous obtenez une SQLite: aucune exception de table de ce type.
Ce problème se produit uniquement dans Android P, toutes les versions antérieures d'Android fonctionnent correctement.
Est-ce un problème connu avec Android P ou quelque chose a-t-il changé?