カスタムROMベースのツールのアップデート機能を探しています。私はこのコードhttp://www.androidsnippets.com/check-for-updates-once-a-dayをベースとして使用しましたが、すぐにそのコードでの展開にDropboxを使用できないことに気付きました。そこで、dropboxからversion.txtファイルをダウンロードするようにコードを変更しました。ファイルには単一の番号(最新のバージョンコード、この場合は11)が含まれています。その行を読み取り、文字列を整数として解析して、現在のversionCodeと比較し、更新が存在する場合はダウンロードをトリガーする必要があります。txtファイルからintを解析することを除いて、すべてのコードが機能します。
これが私のコードです:
private Thread checkUpdate = new Thread() {
public void run() {
try {
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,"BPversion.txt");
StringBuilder text = new StringBuilder();
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
int curVersion = getPackageManager().getPackageInfo("com.JB15613.BPcolorTool", 0).versionCode;
System.out.println(line);
int newVersion = 0;
System.out.println(line);
try {
newVersion = Integer.parseInt(line);
System.out.println(line);
} catch(NumberFormatException nfe) {
System.out.println("Exception " + nfe);
}
if (newVersion > curVersion) {
mHandler.post(showUpdate);
}
}
} catch (Exception e) {
Log.d("ANDRO_ASYNC", "Caught exception");
}
}
そして、私はこの例外を受け取ります:
Exception java.lang.NumberFormatException: Invalid int: "11"
ブレークポイントを適用してデバッガーを実行すると、parseInt行でクラッシュします。
11は私には有効なintのように見えます!
どんな助けでも大歓迎です!