Android应用程序中的NullPointer错误

时间:2014-05-18 05:08:00

标签: java android

我创建了一个应用程序,它从服务器获取日期并将其与设备的日期进行比较,并根据显示的通知进行比较。

它在印度工作得很好但是当我将应用程序上传到商店并且我的客户对其进行了测试时,它就崩溃了。尽管如此,我还是没有在印度遇到任何崩溃事件。我已尝试过客户端用户名和密码,但仍然没有崩溃。但Google Play会显示此崩溃报告..

java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:864)
Caused by: java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1324)
at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:536)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:821)
at java.text.DateFormat.format(DateFormat.java:376)
at com.myapp.common.CommonClass.getforCompare(CommonClass.java:535)
at com.myapp.ContractActivity$SyncronizeTask.doInBackground(ContractActivity.java:1029)
at com.myapp.ContractActivity$SyncronizeTask.doInBackground(ContractActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
... 5 more

java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1183)
at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:518)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:818)
at java.text.DateFormat.format(DateFormat.java:307)
at myapp.common.CommonClass.getforCompare(CommonClass.java:535)
at myapp.ContractActivity$SyncronizeTask.doInBackground(ContractActivity.java:1029)
at com.manektech.contractnotify.ContractActivity$SyncronizeTask.doInBackground(ContractActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)

我很困惑。为什么我没有得到崩溃或错误而客户端呢?

Here是我的活动代码。

2 个答案:

答案 0 :(得分:1)

将手机设置中的区域设置更改为您怀疑在设备上设置的区域设置,程序崩溃的位置。这样您就可以重现崩溃,从而可以进行调试。

Android版本也可能有问题,请尝试在崩溃时报告的模拟器运行版本。

答案 1 :(得分:1)

Caused by: java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1324)
at java.text.SimpleDateFormat.formatImpl(SimpleDateFormat.java:536)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:821)
at java.text.DateFormat.format(DateFormat.java:376)
at com.myapp.common.CommonClass.getforCompare(CommonClass.java:535)

这表示Calendar.setTime中存在nullpointer异常该链包含CommonClass.java:535。看一下空指针可能性的代码。