2014-05-18 3 views
-2

나는 서버에서 날짜를 가져 와서 장치의 날짜와 그 표시 알림에 따라 비교하는 앱을 만들었습니다.NullPointer 안드로이드 애플 리케이션의 오류

인도에서는 완벽하게 작동하지만 앱을 스토어에 업로드하면 고객이 테스트하여 충돌이 발생합니다. 아직도, 나는 인도에서 어떤 충돌도 얻지 않는다. 클라이언트 사용자 이름과 암호를 시도했지만 여전히 충돌이 없습니다. 하지만 Google에서이 충돌 보고서를 표시합니다.

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은 활동 코드입니다.

+0

로케일 문제 일 수 있습니다. 간단한 날짜 포맷터 인 로케일을 사용하십시오. – theLazyFinder

+0

날짜를 포맷하는 ContractActivity 코드는 무엇입니까? – ashu

+0

이 문제가 발생하는 구체적인 방법을 알려주십시오. 이것은 원인을 좁히는 데 도움이 될 것입니다. – Makoto

답변

1

휴대 전화 설정의 로케일을 프로그램에 충돌이 발생하는 장치에서 설정 한 것으로 의심되는 로케일로 변경하십시오. 이렇게하면 크래시를 재현하여 디버그 할 수 있습니다.

Android 버전 또한 문제 일 수 있습니다. 충돌로보고 된 에뮬레이터 실행 버전을 사용해보세요.

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가 포함됩니다. null 포인터 가능성에 대한 코드를 살펴보십시오.

관련 문제