Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.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
Android应用程序自我更新_Android_Apk_Android Install Apk - Fatal编程技术网

Android应用程序自我更新

Android应用程序自我更新,android,apk,android-install-apk,Android,Apk,Android Install Apk,可能重复: 我需要更新我的android应用程序。在程序内部,我下载了新版本。如何用(以编程方式)下载的新版本替换当前版本 如果更新后的apk具有相同的包名,并且使用相同的密钥签名,那么您可以发送一个intent,该intent将调用默认的android安装程序。已安装的apk将被覆盖 Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(new File(pathToApk)); intent.setDa

可能重复:

我需要更新我的android应用程序。在程序内部,我下载了新版本。如何用(以编程方式)下载的新版本替换当前版本


如果更新后的apk具有相同的包名,并且使用相同的密钥签名,那么您可以发送一个intent,该intent将调用默认的android安装程序。已安装的apk将被覆盖

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File(pathToApk));
intent.setDataAndType(uri, "application/vnd.android.package-archive");
startActivity(intent);

你好@lexmiir,谢谢你的回复,我照你说的做了,现在我得到一个警告对话框,说解析器错误-解析包时出现问题。有什么线索吗?:-)嗨@nonickh,你用同一个密钥签署了两个apk吗?当使用不同的keysHi@lexmiir对具有相同包名的应用程序进行签名时,可能会出现此错误。很抱歉,延迟,我比较了两个文件,它们不同,可能是由于复制站点的过程造成的,我首先尝试解决此问题,感谢您的支持可能已经解决,但作为将来的参考,您不应该写入完整的缓冲区,只有读取的字节数,即
fos.write(buff,0,len)
其中
len
在写入最后一个块时可能会小于
buffer.length
。我遇到了同样的错误,并通过在ftp程序中使用二进制模式上传apk文件来解决。
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File(pathToApk));
intent.setDataAndType(uri, "application/vnd.android.package-archive");
startActivity(intent);