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")));
多くの苦労の中で、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; を使用できます。それを unsigned byte[] に変換しますが、私の問題はループが 662600 時間実行されることです。
どうすればこの問題を解決できますか。皆さんからの提案は私にとって非常に役に立ちます。