Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不同的应用程序签名问题?_Java_Android_Installation_Uninstallation - Fatal编程技术网

Java 不同的应用程序签名问题?

Java 不同的应用程序签名问题?,java,android,installation,uninstallation,Java,Android,Installation,Uninstallation,在我的项目中,我创建了一个应用程序,现在当我尝试安装新应用程序时,该应用程序已被修改。它要求完全卸载该应用程序。以前的应用程序,但我不能这样做,因为我要重用以前的应用程序留下的数据我不能修复不同的吗应用程序签名。问题我可以在不安装的情况下将其安装到设备上 我将保留应用程序数据 //使用-r安装thru命令提示符,通过保留其数据重新安装 adb install -r ./yourfolder/MyCam.apk //adb安装选项 adb install [-l] [-r] [-s] <f

在我的项目中,我创建了一个应用程序,现在当我尝试安装新应用程序时,该应用程序已被修改。它要求完全卸载该应用程序。以前的应用程序,但我不能这样做,因为我要重用以前的应用程序留下的数据我不能修复不同的吗应用程序签名。问题我可以在不安装的情况下将其安装到设备上

我将保留应用程序数据


//使用-r安装thru命令提示符,通过保留其数据重新安装

adb install -r ./yourfolder/MyCam.apk
//adb安装选项

adb install [-l] [-r] [-s] <file> - push this package file to the device and install it
                                 ('-l' means forward-lock the app)
                                 ('-r' means reinstall the app, keeping its data)
                                 ('-s' means install on SD card instead of internal storage)
adb安装[-l][-r][-s]-将此程序包文件推送到设备并安装它
(“-l”表示应用程序的前向锁定)
(“-r”表示重新安装应用程序,保留其数据)
(“-s”表示安装在SD卡上而不是内部存储器上)

您必须使用上次生成时使用的签名。如果在Eclipse中重置调试签名,或者使用新的发布密钥对应用程序进行签名,则无法更新。解决此问题的唯一方法是使用上次AFAIK签名时使用的密钥


但是,在DDMS中,您可以从SD卡中提取数据,卸载应用程序,重新安装,然后将数据放回原处。我从未尝试过,但我认为这可能是你唯一的选择。

我也有同样的问题。幸运的是,我在这个应用程序中有一个“到文件”备份功能。你需要同样的签名。您是否使用调试密钥库?在现实世界中,这不是一个好主意。您需要使用原始创建者使用的相同调试密钥。

您需要安装与设备上已有的应用程序具有相同签名的应用程序

您需要确定应用程序是如何安装在设备上的。您至少有两种选择:

  • 使用了Eclipse的默认调试签名密钥(keystore
    ~/.android/debug.keystore
    中的key
    androiddebugkey
  • 在文件->导出期间使用了其他密钥库
如果您使用在
bin
目录中生成的二进制文件(或直接从Eclipse安装的apk),则使用默认密钥库,要创建兼容的apk,您需要找到创建第一个apk时位于此位置的相同文件:
~/.android/debug.keystore
。然后使用
文件->导出…
并选择此文件。输入
android
password,选择
androiddebugkey
并再次输入
android
password。最后选择目标apk名称并单击
Finish

如果无法找到以前的签名密钥,您可以尝试:

  • 备份应用程序数据
  • 卸载应用程序
  • 使用不同的签名安装应用程序(现在成功)
  • 安装回应用程序数据

应用程序数据的备份和恢复可以使用TitaniumBackup应用程序完成。它可能需要根设备。

您的问题是什么?如何修复“不同的应用程序签名”?使用您用于签署前一个apk的密钥在apk上签名。我们没有想到如何找到密钥和签名,对此我一无所知this@Rajesh:是这样的,这样我就可以通过保留旧的应用程序来安装新的应用程序A几个问题:这个APK以前是如何创建的?是否有调试证书使用自签名证书?您现在是如何创建它的?创建APK使用的是同一台计算机和用户帐户吗?谢谢dude,但我要创建这个新的应用程序,它将由我的远程用户使用。是否有任何过程来添加一些代码以在应用程序中启用此功能?我知道这条消息,但在哪里可以找到签名?不知道this@PhotonCriticalFatalError_你是如何安装的第一个应用程序?只是我从bin复制了apk,然后像that@PhotonCriticalFatalError_,我更新了我的答案。你只需要找到你以前使用过的
debug.keystore
文件。很抱歉,dude不幸的是,该应用程序是在调试模式下发布的。你可以使用emulator执行此操作,但不适用于需要root访问权限的设备,但我已经开发了一个远程站点。很抱歉,你必须使用你拥有的最后一个密钥签名对其进行签名。安卓系统有一些机制可以防止你试图做的事情,这样恶意用户就无法通过覆盖其他应用程序的数据来访问这些数据。
adb install [-l] [-r] [-s] <file> - push this package file to the device and install it
                                 ('-l' means forward-lock the app)
                                 ('-r' means reinstall the app, keeping its data)
                                 ('-s' means install on SD card instead of internal storage)