簡體   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