2014-11-21 2 views
0

나는이 프로그래밍에서 아직 새로운 편이다. 제목 배열에 marker.get ("title")을 할당하려고했습니다. 내가 그것을 실행하면 애플 리케이션 크래시 어쨌든 오류 표시가 없습니다. 도움을 주셔서 감사합니다for 루프에서 오류가 발생했습니다. android application

EDIT ** 실제 코드에는 ** 없습니다. 나는 단지 오류를 지적하고 싶다.

@Override 
    protected void onPostExecute(List<HashMap<String, String>> result) { 
     for(int i=0; i<result.size();i++){ 
      HashMap<String, String> marker = result.get(i); 
      LatLng latlng = new LatLng(Double.parseDouble(marker.get("lat")), Double.parseDouble(marker.get("lng"))); 
      PlaceName = marker.get("title"); 
      Address = marker.get("FullAddress"); 
      telno = marker.get("telno"); 
      addMarker(latlng, PlaceName, Address); 

      **for (int x=0;x<=i;x++) 
      { 
       title[x]=marker.get("title"); 
      }** 

     } 
    } 
} 

고정 로그 캣 에러

11-21 10:16:09.273: E/AndroidRuntime(30994): FATAL EXCEPTION: main 
11-21 10:16:09.273: E/AndroidRuntime(30994): Process: com.mha.katpenang, PID: 30994 
11-21 10:16:09.273: E/AndroidRuntime(30994): java.lang.NullPointerException 
11-21 10:16:09.273: E/AndroidRuntime(30994): at com.mha.katpenang.MainActivity$ParserTask.onPostExecute(MainActivity.java:252) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at com.mha.katpenang.MainActivity$ParserTask.onPostExecute(MainActivity.java:1) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at android.os.AsyncTask.finish(AsyncTask.java:632) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at android.os.AsyncTask.access$600(AsyncTask.java:177) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at android.os.Handler.dispatchMessage(Handler.java:102) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at android.os.Looper.loop(Looper.java:136) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at android.app.ActivityThread.main(ActivityThread.java:5034) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at java.lang.reflect.Method.invokeNative(Native Method) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at java.lang.reflect.Method.invoke(Method.java:515) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:805) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621) 
11-21 10:16:09.273: E/AndroidRuntime(30994): at dalvik.system.NativeStart.main(Native Method) 

: 표제 가변 크기 선언에 설정 될 필요가있다.

+0

오류 로그를 게시 할 수 있습니까? – feresr

+0

제목이 초기화 되었습니까? 적어도 충돌에 대한 오류 로그 (logcat)를 게시하십시오. 그렇지 않으면 하나님 만 정확하게 잘못 된 곳을 추측 할 수 있습니다. – Qianqian

+0

크래시가있을 때마다 logcat에서 로그가 빨간색 텍스트로 채워집니다. 그것을 얻고 여기에 게시하십시오. 오류를 몇 가지 방법으로 설명하기 때문에 해당 텍스트를 보는 것이 좋습니다. – MDragon00

답변

0

배열을 어떻게 정의했는지 확인하십시오 title. 당신이

 LatLng latlng = new LatLng(Double.parseDouble(marker.get("lat")), Double.parseDouble(marker.get("lng"))); 

을하고있는 것처럼

String [] title = new String[whateverSize]; // with your chosen size 

0

난 당신이 점점 값에 어떤 작업을 수행하기 전에 NULL 체크를 넣어 생각하는 데 도움이 홉 : 그것은 같은 것을해야한다 원하는 경우 더 좋을 것입니다. -

@Override 
    protected void onPostExecute(List<HashMap<String, String>> result) { 
     if(result != null){ 
     for(int i=0; i<result.size();i++){ 
      HashMap<String, String> marker = result.get(i); 

      LatLng latlng = new LatLng(Double.parseDouble(marker.get("lat")!=null ? 
      marker.get("lat") : "0.0"), Double.parseDouble(marker.get("lng") !=null? 
      marker.get("lng") :"0.0")); 

      PlaceName = marker.get("title"); 
      Address = marker.get("FullAddress"); 
      telno = marker.get("telno"); 
      addMarker(latlng, PlaceName, Address); 

      **for (int x=0;x<=i;x++) 
      { 
       title[x]=marker.get("title"); 
      }** 

     } 
    } 

} 
관련 문제