Ошибка PackageInstaller при прагматическом обновлении приложения - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть класс с именем 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 Ответ

0 голосов
/ 26 апреля 2018

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

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

...