2

我有一个非常接近这个类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.mypackageinstallPackage它在 Android 6 上运行良好。这在 Android 7 中不起作用,除非我使用com.mypackage.full. 问题是这会破坏已升级到 Android 7 的用户更新到最新版本应用程序的能力。Android 6 和 7 之间发生了什么变化导致它崩溃,是否有解决方法?

4

1 回答 1

0

在我看来,您的问题与 packageInstaller 类无关 - 但与您的应用程序的风格无关。您确定 Android 6 和 7 的包名称保持不变吗?

愿意分享 build.gradle 文件吗?

于 2018-04-26T15:51:46.767 回答