我有一个应用程序的apk,与Android 9不兼容,因为它现在强制WAL而不是日志模式。有没有办法在不访问应用程序源代码的情况下禁用WAL?
发布于 2019-03-31 04:40:23
如果你不能控制应用程序的源代码,那么我不相信你可以改变模式。
也就是说,应用程序无法工作的最有可能的原因是使用了预先存在的数据库(从assets文件夹复制)。
如果是这样,并且您可以访问应用程序正在运行的另一个设备(即低于Android 9),并且您可以访问数据库文件(可能需要有根的设备)。在Android9设备上删除-shm和-wal文件之后,很有可能从复制数据库文件(同样,它可能需要是根文件)可以工作(虽然会使用WAL ),但问题很可能纯粹是复制预先存在的数据库。
但是,如果您有权访问代码:-
您可以使用SQLiteDatabase 方法。如果使用SQLiteOpenHelper的子类,则可以通过重写onConfigure方法来执行此操作。
如果不使用SQLiteOpenHelper的子类,那么可以使用 PRAGMA设置日志模式。
https://stackoverflow.com/questions/55434564
复制相似问题