У меня есть класс с именем 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, что привело к его поломке, и есть ли обходной путь для этого?