在 android 中使用 5 到 7 天后,ionic 5 应用程序崩溃

Posted

技术标签:

【中文标题】在 android 中使用 5 到 7 天后,ionic 5 应用程序崩溃【英文标题】:ionic 5 app crashing after use 5 to 7 days in android 【发布时间】:2021-08-21 11:12:22 【问题描述】:

我正在开发 Ionic 5 应用程序,该应用程序可在所有设备上运行 grt。但使用 5 到 7 天。它会强制停止和崩溃。

我尝试删除 node_module、平台。

这是我的离子信息:

   Ionic Framework               : @ionic/angular 5.6.8
   @angular-devkit/build-angular : 0.1102.13
   @angular-devkit/schematics    : 11.2.13
   @angular/cli                  : 11.2.13
   @ionic/angular-toolkit        : 3.1.1 

科尔多瓦:

   Cordova CLI       : 10.0.0
   Cordova Platforms : android 9.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, (and 22 other plugins)

实用程序:

   cordova-res : 0.15.3
   native-run  : 1.3.0

系统:

   Android SDK Tools : 26.1.1 (C:\Users\pc-1\AppData\Local\Android\Sdk)
   NodeJS            : v12.18.3 (C:\Program Files\nodejs\node.exe)
   npm               : 6.14.11
   OS                : Windows 1

cordova 插件列表

cordova-plugin-add-swift-support 2.0.2 "AddSwiftSupport"
cordova-plugin-android-permissions 1.1.2 "Permissions"
cordova-plugin-androidx-adapter 1.1.3 "cordova-plugin-androidx-adapter"        
cordova-plugin-androidx 3.0.0 "cordova-plugin-androidx"
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-camera 5.0.2 "Camera"
cordova-plugin-device 2.0.3 "Device"
cordova-plugin-fcm-with-dependecy-updated 7.8.0 "Cordova FCM Push Plugin"      
cordova-plugin-file-opener2 3.0.5 "File Opener2"
cordova-plugin-file-transfer 1.7.1 "File Transfer"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-firebase-crashlytics 1.2.0 "Cordova Firebase Crashlytics Plugin"
cordova-plugin-geolocation 4.1.0 "Geolocation"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 5.0.0 "cordova-plugin-ionic-webview"
cordova-plugin-local-notification 0.9.0-beta.2 "LocalNotification"
cordova-plugin-nativegeocoder 3.4.1 "NativeGeocoder"
cordova-plugin-network-information 2.0.2 "Network Information"
cordova-plugin-request-location-accuracy 2.3.0 "Request Location Accuracy"     
cordova-plugin-splashscreen 6.0.0 "Splashscreen"
cordova-plugin-statusbar 2.4.3 "StatusBar"
cordova-plugin-whitelist 1.3.4 "Whitelist"
cordova-sqlite-storage 6.0.0 "Cordova SQLite storage plugin - cordova-sqlite-storage plugin version"
cordova-unique-device-id 1.3.2 "UniqueDeviceID"`enter code here`
cordova.plugins.diagnostic 6.0.3 "Diagnostic"
integrator-cordova-plugin-downloader 0.0.1 "Downloader"

Google Play 控制台崩溃报告


java.lang.OutOfMemoryError: 
  at java.util.Arrays.copyOf (Arrays.java:3257)
  at java.lang.AbstractStringBuilder.ensureCapacityInternal (AbstractStringBuilder.java:124)
  at java.lang.AbstractStringBuilder.append (AbstractStringBuilder.java:649)
  at java.lang.StringBuilder.append (StringBuilder.java:203)
  at org.json.JSONStringer.string (JSONStringer.java:354)
  at org.json.JSONStringer.value (JSONStringer.java:261)
  at org.json.JSONObject.writeTo (JSONObject.java:733)
  at org.json.JSONStringer.value (JSONStringer.java:246)
  at org.json.JSONArray.writeTo (JSONArray.java:616)
  at org.json.JSONStringer.value (JSONStringer.java:242)
  at org.json.JSONObject.writeTo (JSONObject.java:733)
  at org.json.JSONStringer.value (JSONStringer.java:246)
  at org.json.JSONObject.writeTo (JSONObject.java:733)
  at org.json.JSONStringer.value (JSONStringer.java:246)
  at org.json.JSONArray.writeTo (JSONArray.java:616)
  at org.json.JSONArray.toString (JSONArray.java:587)
  at org.apache.cordova.PluginResult.<init> (PluginResult.java:49)
  at org.apache.cordova.CallbackContext.success (CallbackContext.java:88)
  at io.sqlc.SQLiteConnectorDatabase.executeSqlBatch (SQLiteConnectorDatabase.java:172)
  at io.sqlc.SQLitePlugin$DBRunner.run (SQLitePlugin.java:341)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
  at java.lang.Thread.run (Thread.java:919)

【问题讨论】:

【参考方案1】:

我认为您使用的是本地商店,因此您的应用程序崩溃: 我的建议是定期清除缓存或使用远程数据库。

【讨论】:

我正在使用 ionic cordova plugin sqlite 在 sqlite DB 中存储许多数据 这是问题所在,因为如果您存储大量数据,这将是一个问题,您可以使用诸如 firebase 或 heroku 中的 sql 数据库之类的数据库

以上是关于在 android 中使用 5 到 7 天后,ionic 5 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

iOS上的Unity3D - 几天后Vuforia总是停止工作

如何在 iOS 中从几小时到几十天后执行一些任务?

几天后,React Native App 无法在 iOS 上启动

留存用户的统计

如何设置本地通知以每 48 小时通知用户一次?

如何修复 Google 令牌在 7 天后过期