2015-01-30 12 views
1

런타임에 스택 추적 오류가 발생합니다.런타임 예외 : doInBackground() 실행 중 오류가 발생했습니다.

런타임 예외 : 오류가 doInBackground을 실행하는 동안 발생() I는 전체 스택 트레이스를 기록하고 아래의 코딩 오류 라인을 지적하고

.

스택 트레이스 :

01-30 05:05:57.213: E/dalvikvm(5676): VM aborting 
01-30 05:05:57.213: A/libc(5676): Fatal signal 6 (SIGABRT) at 0x0000162c (code=-6), thread 5676 (e.quranmadeeasy) 
01-30 05:05:57.761: D/dalvikvm(5767): GC_FOR_ALLOC freed 121K, 6% free 3345K/3524K, paused 2ms, total 2ms 
01-30 05:05:57.761: I/dalvikvm-heap(5767): Grow heap (frag case) to 4.394MB for 1127532-byte allocation 
01-30 05:05:57.761: D/dalvikvm(5767): GC_FOR_ALLOC freed <1K, 4% free 4446K/4628K, paused 2ms, total 2ms 
01-30 05:05:57.805: W/dalvikvm(5767): threadid=12: thread exiting with uncaught exception (group=0xa4cc6b20) 
01-30 05:05:57.805: W/dalvikvm(5767): threadid=15: thread exiting with uncaught exception (group=0xa4cc6b20) 
01-30 05:05:57.805: I/Process(5767): Sending signal. PID: 5767 SIG: 9 

01-30 05:05:57.805: E/AndroidRuntime(5767): FATAL EXCEPTION: AsyncTask #1 
01-30 05:05:57.805: E/AndroidRuntime(5767): Process: com.qrme.quranmadeeasy, PID: 5767 
01-30 05:05:57.805: E/AndroidRuntime(5767): java.lang.RuntimeException: An error occured while executing doInBackground() 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at android.os.AsyncTask$3.done(AsyncTask.java:300) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at java.lang.Thread.run(Thread.java:841) 
01-30 05:05:57.805: E/AndroidRuntime(5767): Caused by: java.lang.NullPointerException 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at com.qrme.quranmadeeasy.LessonActivity$getLesson.doInBackground(LessonActivity.java:258) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at com.qrme.quranmadeeasy.LessonActivity$getLesson.doInBackground(LessonActivity.java:1) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at android.os.AsyncTask$2.call(AsyncTask.java:288) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
01-30 05:05:57.805: E/AndroidRuntime(5767):  ... 4 more 

LessonActivity.java :

public class LessonActivity extends Activity implements OnItemClickListener { 

    static ArrayList<Lesson> lessonList =null ; 
    static ArrayList<Settings> settings = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 
     setContentView(R.layout.activity_lesson); 
initialize(); 
     listLesson.setOnItemClickListener(this); 
    } 

    @Override 
    protected void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 

    new getLesson().execute(""); 
    } 

.............. 
.............. 

// Async Task for getting all lesson of a chapter 

    public class getLesson extends AsyncTask<String, Void, String> { 

     // ProgressDialog pd; // progress dialog declaration 

     @Override 
     protected String doInBackground(String... params) { 

      lessonList = DatabaseQueryHelper.getInstance().getLesson(chapterId); -->258th line 

      return null; 
     } 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 

     } 

     @Override 
     protected void onPostExecute(String result) { 

      if(lessonList!=null) 
      { 
       if(lessonList.size()>0) 
       { 
      al = new AdapterLesson(LessonActivity.this, lessonList); 
      listLesson.setAdapter(al); 

      } 
      } 
     } 
    } 
} 

누구나 이거 받아요 당신과 나에게 도움이 될 수 있습니다.

+0

'chapterId = null' –

+0

@ 리차드 : 포스트 전체 로그 다음은 가능성 때문에 : getLesson' 방법 뭔가가 null'에서'DatabaseQueryHelper.getInstance()'null을 반환 할 수있다? –

+1

@ ρяσѕρєяK 그게 전부 일지 나는 그것에 대해 확신한다 – Steve

답변

0

lessonList를 사용하기 전에이 줄을 ArrayList<Lesson> lessonList = new ArrayList<Lesson>();으로 작성해야합니다.

+2

당신은 onCreate 또는 doInBackround() 메소드에서 정의 할 수 있습니다. –

+2

활동 내에서'static ArrayList lessonList; '를 선언하고'lessonList = new ArrayList ();'에이 행을 추가했습니다. doInBackround(). 그러나 오류 – Steve

+0

을 해결하지는 못합니다. Rechard .... –

0

데이터가 없는지 확인하고 반환 된 데이터를 반복하여 ArrayList에 추가하도록 쿼리를 관리해야합니다.

null을 반환하는 이유가 확실하지 않습니다. 아무 것도 반환하지 않으면 무효화하십시오.

@Override 
    protected String doInBackground(String... params) { 

    try{ 
     lessonList = new ArrayList<String>(); 
     // here you need to get this data and loop through it and add it to your ArrayList    
     DatabaseQueryHelper.getInstance().getLesson(chapterId); 
     //create a loop here and go through the data. 
      lessonList.add("each data"); 

     }catch(NullPointerException e){ 
      //to do 
     } 

     return null;// if you are returning null why don't you have a void method? 
    } 
관련 문제