我有一个非常接近这个类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 之间发生了什么变化导致它崩溃,是否有解决方法?