Android app starts updating with cordova-webintent and force stops
AndroidCordovaInstallationUpdatesWebintentsAndroid Problem Overview
Steps:
-
I Opened the android application (built with
cordova
) -
Then I called
cordova-webintent
for installing updates -
I pressed Install and it starts installing, but after a few seconds, the app force stops and shuts instead of installing and opening the updated app.
This problem appeared some time ago and I can't understand why this happened, because the version of cordova-webintent
and cordova
are the same.
- After the app force stopped, I tapped on the application icon, but there is a message that "App isn't installed". The app continues installing in the background after some seconds. I tapped again on the application icon and the updated application opened.
Why is the app force stopping while installing?
Logs:
E:\work\hello1>adb logcat ActivityManager:I com.example.hello1:D *:S
--------- beginning of system
I/ActivityManager( 715): [Background Service Priority Adjustment] Set callerFg as false for service.getFlags():260
I/ActivityManager( 715): START u0 {act=android.intent.action.VIEW dat=file:///storage/emulated/0/filename1.apk typ=application/vnd.android.package-archive cmp=com.android.packageinstaller/.PackageInstallerActivity} from uid 10657 on display 0
--------- beginning of main
I/ActivityManager( 715): START u0 {dat=file:///storage/emulated/0/filename1.apk cmp=com.android.packageinstaller/.InstallAppProgress (has extras)} from uid 10072 on display 0
I/ActivityManager( 715): [AppLaunch] Displayed Displayed com.android.packageinstaller/.InstallAppProgress: +135ms
I/ActivityManager( 715): Force stopping com.example.hello1 appid=10657 user=-1: uninstall pkg
I/ActivityManager( 715): Killing 19149:com.example.hello1/u0a657 (adj 1): stop com.example.hello1
W/ActivityManager( 715): notify app switch quit packageName=com.example.hello1
I/ActivityManager( 715): Force finishing activity ActivityRecord{16a2ad7e u0 com.example.hello1/.MainActivity t2758}
I/ActivityManager( 715): Force finishing activity ActivityRecord{32eb6933 u0 com.android.packageinstaller/.InstallAppProgress t2758}
**W/ActivityManager( 715): Spurious death for ProcessRecord{2590ad4d 19149:com.example.hello1/u0a657}, curProc for 19149: null**
I/ActivityManager( 715): Force stopping com.example.hello1 appid=10657 user=-1: update pkg
I/ActivityManager( 715): Force stopping com.example.hello1 appid=10657 user=0: pkg removed
Android Solutions
Solution 1 - Android
I have two potential reasons dealing with your problem:
- Thread related issue, depending on cellphone or tablet's type of processors (how many threads can run simultaneously) keep in mind that cordoba-webintent is an async based call.
- Both same versions (cordoba-webintent and cordoba) might missing common plugins. (Plugins was meant to be there but not incuded!)
In the first scenario check your manifest first:
<intent-filter>
<action android:name="com.example.yourapplication.hello1" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Definitely it should have a unique name. Then check your java code, at the place you are calling webintent
startActivity({action: 'com.example.yourapplication.hello1'})
a try{}
would be handy here to test if webintent fires before or after your application's MainActivity()
. Also check the intent "fire" order, if your MainActivity() (has extras)
arguments.
The second scenario is to:
- download cordoba-webintent from gitHub
- build your apk
- extract it and find the plugin directory
- include this plugin directory in your project
- This way will assure that webintent is installed with the latest update and nothing was wrong during the automated update you run previously.
I hope to pin point a different approach to your case!