Yux*_*xal 13 android android-manifest android-install-apk android-broadcastreceiver
我正在研究一个系统应用程序,它通过下载apk并使用PackageManager的installPackage()方法安装它来更新它.
我收到以下异常:
Fatal Exception: java.lang.IllegalArgumentException: Component class com.myapp.package.receivers.SomeOldReceiver does not exist in com.myapp.package
at android.os.Parcel.readException(Parcel.java:1544)
at android.os.Parcel.readException(Parcel.java:1493)
at android.content.pm.IPackageManager$Stub$Proxy.setComponentEnabledSetting(IPackageManager.java:3420)
at android.app.ApplicationPackageManager.setComponentEnabledSetting(ApplicationPackageManager.java:1492)
at com.myapp.package.utils.AndroidUtils.enableDisableComponent(SourceFile:113)
at ...
Run Code Online (Sandbox Code Playgroud)
更新的apk中不存在"SomeOldReceiver"组件.
似乎现有APK的"旧"代码被执行(其应用程序的onCreate()被调用)试图访问更新的APK中存在的"新"清单,并且找不到"旧"接收器(这是甚至可能?).
我的应用程序还会收听PACAKGE_ADDED和PACKAGE_REMOVED意图.
此崩溃发生在相对较大比例的用户身上.
关于为什么会发生这种错误以及如何修复它的任何建议或线索将不胜感激.
如何更新 APK 有不同的方法..我不确定您使用的是哪一种..我遇到了类似的问题..这是由于应用程序在更新期间有多个实例..您可以将应用程序设置为单个实例,或者只是确定没有旧实例在运行。我希望这会有所帮助。
| 归档时间: |
|
| 查看次数: |
763 次 |
| 最近记录: |