当我从异步任务运行方法时,我的应用程序崩溃。但我不知道为什么,错误日志也不是很详细,这使得找到问题变得更加困难。
它与上下文有关,任何人都可以找到我做错了什么吗?
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
任何人的想法?我没有输入我的整个代码,因为它很多。谢谢!