95

脚步:

  1. 我打开了 android 应用程序(用 构建cordova

  2. 然后我要求cordova-webintent安装更新

  3. 我按下安装并开始安装,但几秒钟后,应用程序强制停止并关闭,而不是安装和打开更新的应用程序。

这个问题是前段时间出现的,不明白为什么会这样,因为和的版本cordova-webintentcordova一样的。

  1. 应用程序强制停止后,我点击了应用程序图标,但出现“应用程序未安装”的消息。该应用程序会在几秒钟后继续在后台安装。我再次点击应用程序图标并打开更新的应用程序。

为什么安装时应用程序强制停止?

日志:

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
4

1 回答 1

1

我有两个潜在的原因来处理您的问题:

  • 线程相关问题,取决于手机或平板电脑的处理器类型(可以同时运行多少线程)请记住,cordoba-webintent 是基于异步的调用。
  • 两个相同的版本(cordoba-webintent 和 cordoba)可能缺少常用插件。(插件本来应该在那里,但不包括在内!)

在第一种情况下,首先检查您的清单:

<intent-filter>
     <action android:name="com.example.yourapplication.hello1" />
     <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

当然,它应该有一个唯一的名称。然后在您调用 webintent 的地方检查您的 java 代码

startActivity({action: 'com.example.yourapplication.hello1'}) 

atry{}在这里可以方便地测试 webintent 是否在您的应用程序的MainActivity(). 如果您的 MainActivity()(has extras)参数,还要检查意图“触发”顺序。

第二种情况是:

  • 从gitHub下载 cordoba- webintent
  • 构建你的apk
  • 解压并找到插件目录
  • 在你的项目中包含这个插件目录
  • 这种方式将确保 webintent 安装了最新的更新,并且在您之前运行的自动更新期间没有任何问题。

我希望为您的案例指出不同的方法!

于 2020-12-31T06:48:12.837 回答