cordova-plugin-background-mode: App crashed when launch any app/ android 9
Hi. This is very strange bug, because app work is ok till I’m not launch, Youtube app. After launch app is crashed. If youtube already launched early and I’m open him, app is don’t crash.
If app isn’t in background and open Youtube, app don’t crash.
Tested on katzer and forks (tushe, etc) * Android 9 Xiami A1 (and emulator) * plugins: cordova-plugin-background-mode 0.7.2 “BackgroundMode” cordova-plugin-badge 0.8.8 “Badge” cordova-plugin-device 2.0.2 “Device” cordova-plugin-local-notification 0.9.2 “LocalNotification” cordova-plugin-netto 1.0.1 “Netto” cordova-plugin-openvpn 1.0.0 “OpenVPN” cordova-plugin-ping 0.3.1 “Ping” cordova-plugin-whitelist 1.3.3 “Whitelist” * Errors:
03-17 19:46:53.868 4325 17466 I bweb : Failed closing connection
03-17 19:46:53.868 4325 17466 I bweb : javax.net.ssl.SSLException: Write error: ssl=0x719fc80788: I/O error during system call, Broken pipe
03-17 19:46:53.868 4325 17466 I bweb : at com.google.android.gms.org.conscrypt.NativeCrypto.SSL_write(Native Method)
03-17 19:46:53.868 4325 17466 I bweb : at com.google.android.gms.org.conscrypt.NativeSsl.write(:com.google.android.gms@15090039@15.0.90 (100408-231259764):4)
03-17 19:46:53.868 4325 17466 I bweb : at com.google.android.gms.org.conscrypt.ConscryptFileDescriptorSocket$SSLOutputStream.write(:com.google.android.gms@15090039@15.0.90 (100408-231259764):6)
03-17 19:46:53.868 4325 17466 I bweb : at bwph.a_(:com.google.android.gms@15090039@15.0.90 (100408-231259764):2)
03-17 19:46:53.868 4325 17466 I bweb : at bwoq.a_(:com.google.android.gms@15090039@15.0.90 (100408-231259764):4)
03-17 19:46:53.868 4325 17466 I bweb : at bwpk.close(:com.google.android.gms@15090039@15.0.90 (100408-231259764):2)
03-17 19:46:53.868 4325 17466 I bweb : at bwfu.close(Unknown Source:6)
03-17 19:46:53.868 4325 17466 I bweb : at bwdi.run(:com.google.android.gms@15090039@15.0.90 (100408-231259764):1)
03-17 19:46:53.868 4325 17466 I bweb : at bwbz.run(:com.google.android.gms@15090039@15.0.90 (100408-231259764):2)
03-17 19:46:53.868 4325 17466 I bweb : at rnb.run(:com.google.android.gms@15090039@15.0.90 (100408-231259764):21)
03-17 19:46:53.868 4325 17466 I bweb : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-17 19:46:53.868 4325 17466 I bweb : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-17 19:46:53.868 4325 17466 I bweb : at rsw.run(Unknown Source:7)
03-17 19:46:53.868 4325 17466 I bweb : at java.lang.Thread.run(Thread.java:764)
03-17 19:46:54.282 17870 17942 W YouTube : vwp: valueInCurrentMillis bad value: 0
03-17 19:46:54.282 17870 17942 W YouTube : at eav.b(SourceFile:14)
03-17 19:46:54.282 17870 17942 W YouTube : at dka.b(SourceFile:11)
03-17 19:46:54.282 17870 17942 W YouTube : at dll.run(SourceFile:312)
03-17 19:46:54.282 17870 17942 W YouTube : at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
03-17 19:46:54.282 17870 17942 W YouTube : at java.util.concurrent.FutureTask.run(FutureTask.java:266)
03-17 19:46:54.282 17870 17942 W YouTube : at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
03-17 19:46:54.282 17870 17942 W YouTube : at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-17 19:46:54.282 17870 17942 W YouTube : at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-17 19:46:54.282 17870 17942 W YouTube : at vvq.run(SourceFile:12)
03-17 19:46:54.282 17870 17942 W YouTube : at java.lang.Thread.run(Thread.java:764)
full logcat: logcat.txt … upd: Tested. App will crash if launch any Google App: Google Play, Youtube, Settngs, Instagram, even Calculator… upd 2: on Android 7 it’s work is ok
About this issue
- Original URL
- State: open
- Created 5 years ago
- Reactions: 1
- Comments: 17
You can also add the permission to Ionic 3 / Cordova apps by adding this in your config.xml under android platform:
I could run on android 9 1 - Change ForegroundService.java 2 - Add permission to AndroidManifest.xml
You can check the link : https://stackoverflow.com/questions/47531742/startforeground-fail-after-upgrade-to-android-8-1
1- ForegroundService.java
import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.graphics.Color; import android.os.Binder; import android.os.Build; import android.os.IBinder; import android.os.PowerManager; import android.support.v4.app.NotificationCompat; import org.json.JSONObject; import java.lang.reflect.Method;
2 - AndroidManifest.xml
Give permission ForegroundService <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
Found same conclusion as @zutakamarikana
Created a cordova-android issue #https://github.com/apache/cordova-android/issues/851
Same issue in Galaxy S8 with android 9
@zutakamarikana Thank you for noticing that this issue only occurs with “excludeFromTaskList”. I can confirm that this is indeed the case, at least on my Galaxy S9 (which is running Android 9) and Android 9 emulator. I was having the same issue but never tried running without “excludeFromTaskList”. The fix for this should be quite simple – to change following line in BackgroundModeExt.java from:
if (am == null || SDK_INT < 21)toif (am == null || SDK_INT < 21 || SDK_INT > 27)Created for test a new empty project with same problem.
(After launch app he create notify and move to background. If launch any app - he is crash)
Here apk: app-debug-apk.zip
Here source: testproject.zip
The most interesting thing is that before everything was ok. But now this problem is even with empty projects. I’m tryed update cordova, sdk/nsk, gradle and it’s didn’t help anyway.
For test installed java and android tools to my centos server (I thought maybe trouble in my windows dev-environment)
cordova create hello com.example.hello HelloWorldcd hello & cordova platform addcordova plugin add https://github.com/katzer/cordova-plugin-background-mode.gitcordova.plugins.backgroundMode.setDefaults({ title: 'test', text: 'test', }); cordova.plugins.backgroundMode.enable(); cordova.plugins.backgroundMode.excludeFromTaskList(); cordova.plugins.backgroundMode.moveToBackground();afterthis.receivedEvent('deviceready');in js/index.jscordova build android