sqlite Ionic应用程序突然无法在Android 11中打开

r1zk6ea1  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(143)

我正在构建一个Ionic 4 App+PouchDB,我已经通过执行命令ionic cordova run android构建了这个应用程序,几天来,它工作得很好。然而最近,这款应用程序就是打不开了,我不知道怎么检查哪里出了问题。
在此之前,每当应用程序出现问题时,我都可以使用chrome://inspect进行检查。然而,由于应用程序根本无法打开,所以无法检查问题的原因,因为我也无法使用chrome://inspect进行检查。
当我尝试使用ionic cordova run android -l运行它时,我得到了相同的结果,即应用程序加载并在几分钟后关闭,但我仍然无法进入chrome://inspect
我有一种预感,它与PouchDB有关。当存储空间接近200MB时,该应用程序开始出现这种情况。在阅读PouchDB FAQ时,它被声明;
在PhoneGap/Cordova中,通过使用SQLite插件,你可以在iOS和Android上拥有无限的数据。
但我已经在为PouchDB使用SQLite插件,我也为我的PouchDB使用了cordova-sqlite适配器。下面是我的代码中的一行代码示例:

this._userdb = new PouchDB('user.db', { adapter: 'cordova-sqlite'});

由于应用无法打开,我不知道如何检索存储在PouchDB中的数据,因为我根本无法进入chrome://inspect(我看不到任何存储数据的console.log())。
我觉得清除应用程序数据会让应用程序像以前一样打开,但我真的需要备份存储在PouchDB中的数据,但我真的不知道如何备份,除了获得console.log()的数据。
有没有其他方法可以访问存储在PouchDB中的数据来进行备份?

ubbxdtey

ubbxdtey1#

在多次尝试找出如何检索存储在PouchDB内的数据失败后,我找到了一个解决方案,那就是拉出APK并解压缩备份文件。
通过参考this article,打开CMD并通过;

adb shell

如果您知道应用程序的包名,请运行以下命令继续拉取APK;

adb backup -noapk com.app.your.package.name

**注意:三星Galaxy STORK Android 11等一些设备需要密码才能备份我的数据

解压后,您将找到一个backup.ab文件,您需要解压缩该文件。在这一步,作为一名Windows用户,我无法使用OpenSSL方法。我在使用Python时也遇到了错误。
但我发现一台solution对Windows用户来说工作得很好。根据该solution
1.下载Android Backup Processor
1.进入目录android-backup-tookit\android-backup-processor\executable(该目录应该有一个abp.jar文件
1.将您的backup.ab复制到该目录。
1.打开CMD,运行;

java -jar abp.jar unpack backup.ab test.tar

1.如果在备份过程中需要设备密码,则会要求您输入密码。输入您在备份过程中提供的相同密码。请务必阅读自述文件以了解更多详细信息。
1.完成后,您将在同一目录中找到test.tar文件。要查看文件,只需将其解压缩即可。在应用程序内部创建的数据库应该在**\test\app\com.yourappname\f**中。可以使用DB Browser for SQLite查看SQLite数据库文件。

相关问题