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



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

让我说说我面临的问题。

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

一切正常,但在安装时我得到了

====

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

"解析器错误"解析包时出现问题

====

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

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

安卓代码:

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

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

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

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

我在下载apk的安装路径上犯了错误。伙计们不关心有符号和无符号字节[]

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

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

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

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

相关内容

最新更新