Сбой при самостоятельном обновлении APK (класс компонента не существует)
Я работаю над системным приложением, которое обновляет свой файл, скачав APK и установив его с помощью PackageManager's.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 ...
Компонент SomeOldReceiver не существует в обновленном apk.
Кажется, что «старый» код из существующего APK выполняется (вызывается onCreate () его приложения), пытающегося получить доступ к «новому» манифесту, который существует в обновленном APK и не может найти «старый» получатель (это даже возможно?)
Мое приложение также слушает намерения PACAKGE_ADDED & PACKAGE_REMOVED.
Этот сбой происходит на относительно большой процент пользователей.
Будем весьма благодарны за любые предложения или подсказки, почему эта ошибка происходит и как ее исправить.