有非常重要的重點:
*****請先下載Config.java和NetworkTool.java兩個程式,放到對應的java目錄下。
https://code.google.com/p/androidex/source/browse/trunk/jtapp-12-updateapksamples/#jtapp-12-updateapksamples%2Fsrc%2Fjtapp%2Fupdateapksamples
*****UpdateActivity.java 是主程式,把對應的程式碼改到你的程式,其中要注意的是,程式碼中的UpdateActivity請記得要換成你自己的名稱....我也是被搞了一下~~哈
*****為什麼在模擬器中,更新會不能安裝,找到的文章解釋
http://stackoverflow.com/questions/19959890/android-app-not-install-an-existing-package-by-the-same-name-with-a-conflicting
the APK installed in the Emulator is signed with your debug-key(usually installed in ~/.android/debug.keystore)
因為key不同,但實際上,如果建置完畢的話,更新是不會有這問題。目前確實成功。
===========================
發生錯誤:
NetworkTool.java 中
HttpResponse response = client.execute(new HttpGet(url));
會發生
ERROR : android.os.NetworkOnMainThreadException
解決方式:
方法一:/*設定可以讓Thread運行在Android主要Thread*/
http://stackoverflow.com/questions/16439587/android-os-networkonmainthreadexception-with-android-4-2
在 HttpResponse response = client.execute(new HttpGet(url)); 之前放上
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
並
import android.os.StrictMode;
方法二:
etwork problem的問題我試了,是HTTPClient的部份不能在UI Thread做,寫一個extend AsyncTask的class讓HTTPClient的部份在background做就可以了
http://givemepass.blogspot.com/2011/12/http-server.html
===========================
第二個問題:寫檔在sd上
1. 在AVD建的時候要加上SD卡的容量
2. 在 AndroidManifest.xml 補上