asynctaskからメソッドを実行すると、アプリケーションがクラッシュします。しかし、理由はわかりません。エラーログも実際には詳細ではないため、問題を見つけるのが難しくなります。
それは文脈と関係があります、誰かが私が間違っていることを見つけることができますか?
public class UpdateHelpers extends Activity{
public String UPDATE_TIMESTAMP;
//opgeslagen timestamp verkrijgen
public int getLastUpdateTimeStamp(){
System.out.println(" getLastUpdateTimestamp Methode" );
SharedPreferences savedTimeStamp = getSharedPreferences(UPDATE_TIMESTAMP, MODE_PRIVATE);
Integer startvalue = 1343192400; // timestamp last file from assets: (25-07-2012)
Integer timestamp = savedTimeStamp.getInt("timestamp", startvalue); //standaard value: datum laatste json uit assets (25-07-2012)
System.out.println("return value: "+timestamp);
return timestamp;
}
クラスはより大きく、より役立つメソッドですが、これはすでに機能しません)
非同期タスク(バックグラウンドで実行)
//check for updates
Integer ts = uh.getLastUpdateTimeStamp();
System.out.println("value of timestamp= "+ts);
ここで、uhは非同期タスクを使用してクラスのonCreateで宣言されます。
public UpdateHelpers uh;
uh = new UpdateHelpers();
必要なのは保存されたタイムスタンプです。タイムスタンプが存在しない場合は、ファイルをダウンロードしたとき(7月25日)からのタイムスタンプです。次に、別の方法で更新があるかどうかを確認できますが、コードが早くクラッシュします。
いくつかのsystem.out.printlnsを挿入したので、どこで問題が発生したかを確認できます。クラッシュログは次のとおりです。
08-26 16:14:54.932: I/System.out(12571): getLastUpdateTimestamp Methode
08-26 16:14:54.932: W/dalvikvm(12571): threadid=8: thread exiting with uncaught exception (group=0x400259f8)
08-26 16:14:54.942: E/AndroidRuntime(12571): FATAL EXCEPTION: AsyncTask #1
08-26 16:14:54.942: E/AndroidRuntime(12571): java.lang.RuntimeException: An error occured while executing doInBackground()
08-26 16:14:54.942: E/AndroidRuntime(12571): at android.os.AsyncTask$3.done(AsyncTask.java:200)
08-26 16:14:54.942: E/AndroidRuntime(12571): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
08-26 16:14:54.942: E/AndroidRuntime(12571): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
08-26 16:14:54.942: E/AndroidRuntime(12571): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
08-26 16:14:54.942: E/AndroidRuntime(12571): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
08-26 16:14:54.942: E/AndroidRuntime(12571): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
08-26 16:14:54.942: E/AndroidRuntime(12571): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
08-26 16:14:54.942: E/AndroidRuntime(12571): at java.lang.Thread.run(Thread.java:1102)
08-26 16:14:54.942: E/AndroidRuntime(12571): Caused by: java.lang.NullPointerException
08-26 16:14:54.942: E/AndroidRuntime(12571): at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146)
08-26 16:14:54.942: E/AndroidRuntime(12571): at com.hera.ontdekdelft.UpdateHelpers.getLastUpdateTimeStamp(UpdateHelpers.java:24)
08-26 16:14:54.942: E/AndroidRuntime(12571): at com.hera.ontdekdelft.StartUp$LoadData.doInBackground(StartUp.java:611)
08-26 16:14:54.942: E/AndroidRuntime(12571): at com.hera.ontdekdelft.StartUp$LoadData.doInBackground(StartUp.java:1)
08-26 16:14:54.942: E/AndroidRuntime(12571): at android.os.AsyncTask$2.call(AsyncTask.java:185)
08-26 16:14:54.942: E/AndroidRuntime(12571): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
08-26 16:14:54.942: E/AndroidRuntime(12571): ... 4 more
誰かアイデア?コードがたくさんあるので、コード全体を入れませんでした。ありがとうございました!