我一直在嘗試爲Android應用程序實施升級計劃,該計劃不會在Android市場上發佈。在應用程序升級過程中發生Android解析錯誤
所設計的應用程序的工作流程如下:
- 用戶在登錄時進行驗證,並在主菜單活動啓動。
- 一個請求從主菜單活動發送到我的網站 最新版本的代碼值(Stor在服務器上的SQL數據庫中)。
- 將返回的版本代碼值與設備上安裝的apk版本代碼的值 進行比較。
- 如果返回的版本代碼值不同,則位於 服務器上的新apk文件將被下載並安裝。
在升級工作流程起作用之前,確保完成以下任務也很重要。
- 的apk文件的新版本必須編譯燒焦發佈了一個更新的versionCode值
- 存儲在網站數據庫中的versionCode值的值必須更新
- 新編譯的apk文件必須是上傳到網絡服務器上的正確位置
我已經實現了我的工作流程的前三個階段,但是當我嘗試實現第四部分時,我最終得到了「解析錯誤:解析該問題包「錯誤。
下面是有問題的代碼:
protected void upgradeApplication() {
StringBuilder urlBuilder = new StringBuilder(getString(R.string.website_ip) + "/" + getString(R.string.application_middleware) + "/" + getString(R.string.apk_folder) + "/");
File file = new File(urlBuilder.toString(), getString(R.string.apk_file));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(intent);
}
我已經測試過的APK將通過下載直接雖然設備的網絡瀏覽器,並從下載文件夾中安裝它的APK安裝正確。但是當我嘗試從應用程序中安裝時,我得到了發佈的錯誤。
「解析錯誤:有aproblem解析包」
任何幫助,將不勝感激
你將它存儲在getFileDir? –
你的意思是儲存apk?我已經被迫使用僅作爲我不能肯定該用戶將獲得一個SD卡安裝 –
此外,我認爲下面的代碼行會拉從網站上的文件內部存儲器中的應用。 'File file = new File(urlBuilder.toString(),getString(R.string.apk_file));' 其中urlBuilder包含指向apk文件的鏈接 –