繁体   English   中英

从我自己的服务器上下载APK时解析器错误

[英]Parser Error while installing an APK,downloaded from my own Server

它可能是stackoverflow.com/questions/11135680/parse-error-while-installing-downloaded-apk-file的重复问题,但是我没有找到解决此问题的任何答案。

让我说说我所面临的问题。

我在平板电脑上安装了一个应用程序。 该应用程序每次启动时都会检查更新。 如果有更新,它将下载apk并自动安装。 我已经将.NET服务用作Web服务。 我的.NET服务会将APK转换为存储在mySQL DB中的byte [] array格式,并将该byte [] Array发送到我的Android应用程序。

一切正常,但在安装时我正在

=====================================

“ PARSER ERROR”解析软件包时出现问题

=====================================

请不要说检查apk的签名,一切都还好

Android代码:

SoapPrimitive pResponse = (SoapPrimitive) envelope.getResponse();                           
byte[] bResponse = Base64.decodeBase64((pResponse.toString().getBytes("UTF-8")));

我在挣扎中发现Byte []响应与.net Byte []不匹配,因为java具有带符号的字节(sbyte -128至127),而.net具有无符号的字节(byte 0至255),例如: .NET [80,40,2,2,8,0,0,0,12,240,200 ...........]在Android [80,40,2,2,8,0,0,0 ,12,-16,-56 ...........]

我可以使用int unsigned = b&0xFF; 将其转换为无符号的byte [],但是我的问题是我的循环将运行662600次。

我该如何克服这个问题,你们的任何建议对我都很有帮助。

我在下载apk的安装路径上做错了。您不必担心有符号和无符号字节[]

我从服务器自动更新apk遵循的步骤。

  1. apk的先前版本和最新/更新的apk的签名应该相同。

  2. 确保apk的下载路径和安装路径相同。

注意:您可以使用byte []或Stream来响应您的服务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM