1

嗨,我正在开发一个您的私人用途的应用程序,我不想上传到 Google Play。

当应用程序打开时检查服务器中是否存在新的更新,如果存在则下载 apk 然后安装

    Intent i = new Intent();
    i.setAction(Intent.ACTION_VIEW);
    i.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/ipacUpdates/ipac.apk")), "application/vnd.android.package-archive" );

    this.ctx.startActivity(i);

安装完成时显示此错误

an existing package by the same name with a confilcting signature is already installed

两个 apk 都使用同一台机器构建并在avd emulator.

会发生什么?

4

4 回答 4

2

可能一个使用默认调试密钥签名,另一个使用您自己的密钥签名。确保两个版本的构建方式相同。无论您是否将其上传到 Play,您都应该拥有自己的密钥库,并使用该密钥库进行签名。有关更多信息,请查看以下链接

于 2013-09-27T07:55:43.383 回答
2

转至Settings -> Apps,然后滑动至全部选项卡。向下滚动到列表的最末端,其中列出了旧版本并带有“未安装”标记。选择它并按右上角的“设置”按钮,最后“为所有用户卸载”

于 2016-03-24T19:57:51.757 回答
1

如果您拥有要尝试安装的应用程序,则只需递增android:versionCode="??"并再次生成该应用程序android:versionName="??"AndroidManifest.xml

我希望这有帮助。

于 2013-09-27T07:50:30.457 回答
0

我遇到了同样的问题,您需要正在运行的应用程序与您要升级到的应用程序具有相同的签名。当您通过模拟器运行应用程序时,它会获得开发签名。

我所做的是运行模拟器,删除程序,然后从互联网上手动安装我的应用程序,然后通过让我的应用程序自行升级来测试升级。两者都使用生产签名进行签名,因此它能够发生。

更多信息参考:Android 应用未安装。已安装具有冲突签名的同名现有软件包

于 2013-11-13T17:55:21.043 回答