Ошибка 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?