veroneseComS
veroneseComS

Reputation: 768

App crashing instantly after open in Android

I have one app in ionic that are stable in the vast majority of my clients.

But i have one client that have one Samsung S9 and when he open the app, instantly open a message:

The app has stopped

The client confirm that in the older versions the app run normaly.

This is my log available from Google Console:

java.lang.RuntimeException:

at android.view.DisplayListCanvas.throwIfCannotDraw (DisplayListCanvas.java:229)

at android.view.RecordingCanvas.drawBitmap (RecordingCanvas.java:97)

at android.graphics.drawable.BitmapDrawable.draw (BitmapDrawable.java:529)

at android.widget.ImageView.onDraw (ImageView.java:1367)

at android.view.View.draw (View.java:20338)

at android.view.View.updateDisplayListIfDirty (View.java:19283)

at android.view.View.draw (View.java:20061)

at android.view.ViewGroup.drawChild (ViewGroup.java:4421)

at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4207)

at android.view.View.updateDisplayListIfDirty (View.java:19274)

at android.view.View.draw (View.java:20061)

at android.view.ViewGroup.drawChild (ViewGroup.java:4421)

at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4207)

at android.view.View.updateDisplayListIfDirty (View.java:19274)

at android.view.View.draw (View.java:20061)

at android.view.ViewGroup.drawChild (ViewGroup.java:4421)

at android.view.ViewGroup.dispatchDraw (ViewGroup.java:4207)

at android.view.View.draw (View.java:20341)

at com.android.internal.policy.DecorView.draw (DecorView.java:979)

at android.view.View.updateDisplayListIfDirty (View.java:19283)

at android.view.ThreadedRenderer.updateViewTreeDisplayList (ThreadedRenderer.java:686)

at android.view.ThreadedRenderer.updateRootDisplayList (ThreadedRenderer.java:692)

at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:800)

at android.view.ViewRootImpl.draw (ViewRootImpl.java:3488)

at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:3275)

at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2810)

at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1779)

at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:7810)

at android.view.Choreographer$CallbackRecord.run (Choreographer.java:911)

at android.view.Choreographer.doCallbacks (Choreographer.java:723)

at android.view.Choreographer.doFrame (Choreographer.java:658)

at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:897)

at android.os.Handler.handleCallback (Handler.java:789)

at android.os.Handler.dispatchMessage (Handler.java:98)

at android.os.Looper.loop (Looper.java:164)

at android.app.ActivityThread.main (ActivityThread.java:6938)

at java.lang.reflect.Method.invoke (Native Method)

at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)

at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

My ionic info:

Ionic:

ionic (Ionic CLI) : 4.1.1 (C:\Users\jsoftwares1\AppData\Roaming\npm\node_modules\ionic) Ionic Framework : ionic-angular 3.9.2 @ionic/app-scripts : 3.1.11

Cordova:

cordova (Cordova CLI) : 8.0.0 Cordova Platforms : not available Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.2, cordova-plugin-ionic-webview 1.2.1, (and 16 other plugins)

System:

Android SDK Tools : 26.1.1 (C:\Users\jsoftwares1\Desktop\tools\lib) NodeJS : v8.11.3 (C:\Program Files\nodejs\node.exe) npm : 6.4.0 OS : Windows 10

My cordova plugins:

cordova-plugin-advanced-http 1.11.1 “Advanced HTTP plugin”
cordova-plugin-app-event 1.2.1 “Application Events”
cordova-plugin-app-version 0.1.9 “AppVersion”
cordova-plugin-background-mode 0.7.2 “BackgroundMode”
cordova-plugin-badge 0.8.7 “Badge”
cordova-plugin-device 2.0.2 “Device”
cordova-plugin-dialogs 2.0.1 “Notification”
cordova-plugin-file 6.0.1 “File”
cordova-plugin-ionic-keyboard 2.1.2 “cordova-plugin-ionic-keyboard”
cordova-plugin-ionic-webview 1.2.1 “cordova-plugin-ionic-webview”
cordova-plugin-local-notification 0.9.0-beta.2 “LocalNotification”
cordova-plugin-local-notifications-db 0.8.4 “LocalNotification”
cordova-plugin-sim 1.3.3 “SIM”
cordova-plugin-splashscreen 5.0.2 “Splashscreen”
cordova-plugin-whitelist 1.3.3 “Whitelist”
cordova-sqlite-storage 2.4.0 “Cordova sqlite storage plugin”
cordova-support-google-services 1.1.0 “cordova-support-google-services”
phonegap-plugin-multidex 1.0.0 “Multidex”
phonegap-plugin-push 2.2.3 “PushPlugin”

My config.xml:

<?xml version='1.0' encoding='utf-8'?>

<widget id="japp.jcontrole" version="0.1.6" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

<name>xApp</name>

<description>Controle de perguntas/respostas auxiliar do sistema xx.</description>

<author email="hi@ionicframework" href="http://ionicframework.com/">Ionic Framework Team</author>

<content src="index.html" />

<allow-intent href="http://*/*" />

<allow-intent href="https://*/*" />

<content src="index.html" />

<allow-navigation href="*" />

<allow-intent href="*" />

<access origin="*" subdomains="true" />

<allow-intent href="tel:*" />

<allow-intent href="sms:*" />

<allow-intent href="mailto:*" />

<allow-intent href="geo:*" />

<preference name="ScrollEnabled" value="false" />

<preference name="SplashScreenSpinnerColor" value="white" />

<preference name="AndroidPersistentFileLocation" value="Compatibility" />

<preference name="windows-target-version" value="10.0" />

<preference name="windows-phone-target-version" value="10.0" />

<preference name="android-minSdkVersion" value="19" />

<preference name="BackupWebStorage" value="none" />

<preference name="SplashMaintainAspectRatio" value="true" />

<preference name="FadeSplashScreenDuration" value="300" />

<preference name="SplashShowOnlyFirstTime" value="false" />

<preference name="SplashScreen" value="screen" />

<preference name="AutoHideSplashScreen" value="false" />

<preference name="SplashScreenDelay" value="0" />

<preference name="ShowSplashScreen" value="true" />

<preference name="FadeSplashScreen" value="true" />

<preference name="loadUrlTimeoutValue" value="700000" />

<platform name="android">

<icon qualifier="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />

<icon qualifier="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />

<icon qualifier="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />

<icon qualifier="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />

<icon qualifier="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />

<icon qualifier="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />

<splash qualifier="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />

<splash qualifier="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />

<splash qualifier="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />

<splash qualifier="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />

<splash qualifier="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />

<splash qualifier="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />

<splash qualifier="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />

<splash qualifier="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />

<splash qualifier="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />

<splash qualifier="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />

<splash qualifier="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />

<splash qualifier="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />

</platform>

<platform name="ios">

<icon height="57" platform="ios" src="resources/icons/ios/icon.png" width="57" />

<icon height="114" platform="ios" src="resources/icons/ios/[email protected]" width="114" />

<icon height="40" platform="ios" src="resources/icons/ios/icon-40.png" width="40" />

<icon height="80" platform="ios" src="resources/icons/ios/[email protected]" width="80" />

<icon height="50" platform="ios" src="resources/icons/ios/icon-50.png" width="50" />

<icon height="100" platform="ios" src="resources/icons/ios/[email protected]" width="100" />

<icon height="60" platform="ios" src="resources/icons/ios/icon-60.png" width="60" />

<icon height="120" platform="ios" src="resources/icons/ios/[email protected]" width="120" />

<icon height="180" platform="ios" src="resources/icons/ios/[email protected]" width="180" />

<icon height="72" platform="ios" src="resources/icons/ios/icon-72.png" width="72" />

<icon height="144" platform="ios" src="resources/icons/ios/[email protected]" width="144" />

<icon height="76" platform="ios" src="resources/icons/ios/icon-76.png" width="76" />

<icon height="152" platform="ios" src="resources/icons/ios/[email protected]" width="152" />

<icon height="29" platform="ios" src="resources/icons/ios/icon-small.png" width="29" />

<icon height="58" platform="ios" src="resources/icons/ios/[email protected]" width="58" />

<icon height="87" platform="ios" src="resources/icons/ios/[email protected]" width="87" />

<splash height="1136" platform="ios" src="resources/screens/ios/Default-568h@2x~iphone.png" width="640" />

<splash height="1334" platform="ios" src="resources/screens/ios/Default-667h.png" width="750" />

<splash height="2208" platform="ios" src="resources/screens/ios/Default-736h.png" width="1242" />

<splash height="1242" platform="ios" src="resources/screens/ios/Default-Landscape-736h.png" width="2208" />

<splash height="1536" platform="ios" src="resources/screens/ios/Default-Landscape@2x~ipad.png" width="2048" />

<splash height="768" platform="ios" src="resources/screens/ios/Default-Landscape~ipad.png" width="1024" />

<splash height="2048" platform="ios" src="resources/screens/ios/Default-Portrait@2x~ipad.png" width="1536" />

<splash height="1024" platform="ios" src="resources/screens/ios/Default-Portrait~ipad.png" width="768" />

<splash height="960" platform="ios" src="resources/screens/ios/Default@2x~iphone.png" width="640" />

<splash height="480" platform="ios" src="resources/screens/ios/Default~iphone.png" width="320" />

</platform>

<plugin name="cordova-plugin-whitelist" spec="1.3.3" />

<plugin name="cordova-plugin-device" spec="2.0.2" />

<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />

<plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />

<allow-navigation href="http://192.168.0.15:8100" />

<allow-navigation href="http://192.168.0.15:8101" />

<allow-navigation href="http://192.168.0.15:8102" />

<allow-navigation href="http://10.0.7.80:8100" />

<plugin name="cordova-plugin-advanced-http" spec="^1.11.1" />

<plugin name="cordova-plugin-ionic-webview" spec="^1.2.1" />

<allow-navigation href="http://192.168.0.15:8103" />

<allow-navigation href="http://192.168.0.15:8106" />

<plugin name="cordova-sqlite-storage" spec="^2.3.3" />

<plugin name="cordova-plugin-dialogs" spec="^2.0.1" />

<plugin name="cordova-plugin-app-version" spec="^0.1.9" />

<plugin name="cordova-plugin-sim" spec="^1.3.3" />

<plugin name="cordova-plugin-local-notification" spec="^0.9.0-beta.2" />

<plugin name="phonegap-plugin-push" spec="^2.2.3">

<variable name="ANDROID_SUPPORT_V13_VERSION" value="27.+" />

<variable name="FCM_VERSION" value="11.6.2" />

</plugin>

<plugin name="cordova-plugin-background-mode" spec="^0.7.2" />

<engine name="browser" spec="5.0.3" />

<engine name="ios" spec="4.5.5" />

<engine name="android" spec="7.1.0" />

</widget>
Recently i added a background mode with local notifications in one component:

 ngOnInit(): void {

  this.backgroundMode.setDefaults({silent:true});
  this.backgroundMode.enable();
  this.backgroundMode.on("activate").subscribe(()=>{

  this.backgroundMode.disableWebViewOptimizations()

  clearInterval(this.intervalId); 

  this.intervalId = setInterval(() => {this.consultaNotificacoes()}, 100000); 

My function that call a local push notification:

 for (var i = 0; i < res.data.notificar.perguntas.length; i++) {
            this.localNotifications.schedule({
              id: i+1,
              priority: 2,
              text: 'Produto: ' + res.data.notificar.perguntas[i].produto.substring(0, 20) + '...',
              title: 'Nova pergunta, conta: ' + res.data.notificar.perguntas[i].conta,
              smallIcon: 'res://notification',
            });
          }
        }

Upvotes: 0

Views: 1652

Answers (2)

adamdport
adamdport

Reputation: 12603

For others that get this error, be sure that you define all the densities for cordova-plugin-splashscreen. The documentation's example only mentions 4 densities:

<splash src="res/screen/android/splash-port-hdpi.png" density="port-hdpi"/>
<splash src="res/screen/android/splash-port-ldpi.png" density="port-ldpi"/>
<splash src="res/screen/android/splash-port-mdpi.png" density="port-mdpi"/>
<splash src="res/screen/android/splash-port-xhdpi.png" density="port-xhdpi"/>

But you need the last two also:

<splash src="res/screen/android/splash-port-xxhdpi.png" density="port-xxhdpi"/>
<splash src="res/screen/android/splash-port-xxxhdpi.png" density="port-xxxhdpi"/>

Even if the device's screen is low (eg. mdpi), the app will look for higher densities if the user has configured zoom or magnification. This behavior cannot be reproduced on an emulator, but can cause crashes on physical devices.

Upvotes: 1

veroneseComS
veroneseComS

Reputation: 768

I fix in config.xml, my assets is wrong.

I do:

<platform name="android">
        <icon qualifier="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
        <icon qualifier="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
        <icon qualifier="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
        <icon qualifier="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
        <icon qualifier="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
        <icon qualifier="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
        <splash qualifier="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
        <splash qualifier="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
        <splash qualifier="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
        <splash qualifier="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
        <splash qualifier="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
        <splash qualifier="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
        <splash qualifier="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
        <splash qualifier="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
        <splash qualifier="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
        <splash qualifier="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
        <splash qualifier="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
        <splash qualifier="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
    </platform>
    <platform name="ios">
        <icon height="57" platform="ios" src="resources/ios/icon/icon.png" width="57" />
        <icon height="114" platform="ios" src="resources/ios/icon/[email protected]" width="114" />
        <icon height="40" platform="ios" src="resources/ios/icon/icon-40.png" width="40" />
        <icon height="80" platform="ios" src="resources/ios/icon/[email protected]" width="80" />
        <icon height="50" platform="ios" src="resources/ios/icon/icon-50.png" width="50" />
        <icon height="100" platform="ios" src="resources/ios/icon/[email protected]" width="100" />
        <icon height="60" platform="ios" src="resources/ios/icon/icon-60.png" width="60" />
        <icon height="120" platform="ios" src="resources/ios/icon/[email protected]" width="120" />
        <icon height="180" platform="ios" src="resources/ios/icon/[email protected]" width="180" />
        <icon height="72" platform="ios" src="resources/ios/icon/icon-72.png" width="72" />
        <icon height="144" platform="ios" src="resources/ios/icon/[email protected]" width="144" />
        <icon height="76" platform="ios" src="resources/ios/icon/icon-76.png" width="76" />
        <icon height="152" platform="ios" src="resources/ios/icon/[email protected]" width="152" />
        <icon height="29" platform="ios" src="resources/ios/icon/icon-small.png" width="29" />
        <icon height="58" platform="ios" src="resources/ios/icon/[email protected]" width="58" />
        <icon height="87" platform="ios" src="resources/ios/icon/[email protected]" width="87" />
        <splash height="1136" platform="ios" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
        <splash height="1334" platform="ios" src="resources/ios/splash/Default-667h.png" width="750" />
        <splash height="2208" platform="ios" src="resources/ios/splash/Default-736h.png" width="1242" />
        <splash height="1242" platform="ios" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
        <splash height="1536" platform="ios" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
        <splash height="768" platform="ios" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
        <splash height="2048" platform="ios" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
        <splash height="1024" platform="ios" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
        <splash height="960" platform="ios" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
        <splash height="480" platform="ios" src="resources/ios/splash/Default~iphone.png" width="320" />
    </platform>

and everythings works.

Upvotes: 1

Related Questions