Ошибка PackageInstaller при прагматическом обновлении приложения

У меня есть класс под названием CosuUtils это следует за этим классом довольно близко. Я программно обновляю приложение, которое является владельцем устройства. Это нормально работает в Android 6, но я получаю следующую ошибку при попытке обновления в Android 7.

PackageInstaller: Commit of session 1108510423 failed: /data/app/vmdl1108510423.tmp/COSU specified package com.mypackage inconsistent with com.mypackage.full

В CosuUtils Я установил название пакета как таковое

public static boolean installPackage(Context context, InputStream in, String packageName) throws IOException {
    PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
    PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL);
    params.setAppPackageName(packageName);

Я проходил com.mypackage в installPackage который, как упоминалось ранее, отлично работает на Android 6. Это не работает в Android 7, если я не использую com.mypackage.full, Проблема заключается в том, что это лишает пользователей, которые выполнили обновление до Android 7, возможность обновления до последней версии приложения. Что изменилось между Android 6 и 7, что привело к его поломке и есть ли обходной путь?

1 ответ

Мне кажется, что ваша проблема не имеет ничего общего с классом packageInstaller, но все же со вкусом вашего приложения. Вы уверены, что имя пакета остается одинаковым для Android 6 и 7?

Хотите поделиться файлом build.gradle?

Другие вопросы по тегам