Falha durante a atualização automática do APK (a classe de componente não existe)
Estou trabalhando em um aplicativo de sistema que se atualiza baixando um apk e instalando-o usando o PackageManagerinstallPackage()
método.
Estou recebendo a seguinte exceção:
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 ...
O componente "SomeOldReceiver" não existe no apk atualizado.
Parece que o código "antigo" do APK existente foi executado (o aplicativo onCreate () é chamado) tentando acessar o manifesto "novo" que existe no APK atualizado e não consegue encontrar o receptor "antigo" (é este mesmo possível?).
Meu aplicativo também ouve as intenções PACAKGE_ADDED & PACKAGE_REMOVED.
Essa falha ocorre em uma porcentagem relativamente grande de usuários.
Qualquer sugestão ou pista sobre por que esse bug está acontecendo e como corrigi-lo seria muito apreciada.