0

当我从异步任务运行方法时,我的应用程序崩溃。但我不知道为什么,错误日志也不是很详细,这使得找到问题变得更加困难。

它与上下文有关,任何人都可以找到我做错了什么吗?

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

任何人的想法?我没有输入我的整个代码,因为它很多。谢谢!

4

1 回答 1

1

您不能像下面这样初始化活动类。它需要由Android为您初始化

uh = new UpdateHelpers();

呃应该是你的活动。做这样的事情

uh = ActivityName.this
于 2012-08-26T14:31:34.613 回答