0

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 時間実行されることです。

どうすればこの問題を解決できますか。皆さんからの提案は私にとって非常に役に立ちます。

4

1 に答える 1