这可能是stackoverflow.com/questions/11135680/parse-error-while-installing-downloaded-apk-file的重复问题,但我没有找到任何答案来解决这个问题。
让我说一下我面临的问题。
我在平板电脑中安装了一个应用程序。此应用程序将在启动时检查更新。如果有更新,它将下载 apk 并自动安装。我已将 .NET 服务用作 Web 服务。我的 .NET 服务会将 APK 转换为存储在 mySQL DB 中的 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......] 在 Android [80,40,2,2,8,0,0,0 ,12,-16,-56…………]
我可以使用 int unsigned = b & 0xFF; 将其转换为无符号字节 [] 但我的问题是我的循环将运行 662600 次。
我该如何克服这个问题,你们的任何建议对我很有帮助。