10-29 14:40:53.278: ERROR/AndroidRuntime(334): FATAL EXCEPTION: main
10-29 14:40:53.278: ERROR/AndroidRuntime(334): java.lang.IllegalArgumentException: no dialog with id 0 was ever shown via Activity#showDialog
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at android.app.Activity.missingDialog(Activity.java:2590)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at android.app.Activity.dismissDialog(Activity.java:2580)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at com.kangwon.kysfits.cardinate.Get_Cdn$1.onClick(Get_Cdn.java:229)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at android.os.Looper.loop(Looper.java:123)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at android.app.ActivityThread.main(ActivityThread.java:4627)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at java.lang.reflect.Method.invokeNative(Native Method)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at java.lang.reflect.Method.invoke(Method.java:521)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-29 14:40:53.278: ERROR/AndroidRuntime(334):     at dalvik.system.NativeStart.main(Native Method)

이런 오류가 뜨는데.. 무슨 오류인지 잘 모르겠어요.ㅠㅠ

 

꼭좀 답변 부탁드립니다!!ㅠㅠ

 

소스코드 첨부합니다!! 뭐가 잘못됬는지 모르겠어서요.ㅠㅠ

-----------------------------------------------------------------------------------------------------------------------------------------------

 

public Dialog onCreateDialog(int id)
    {
        Dialog dialog = null;
 
        switch(id) {
            //ID_2BUTTON_DIALOG로 정의된 0번 ID로 대화상자를 생성해야하는 경우
            case ID_2BUTTON_DIALOG : {
             //왼쪽,오른쪽 모두 클릭되서(cnt==2) 알림창이 떠야 하는 경우
             if(cnt==2){
              //AlertDialog 를 생성해주는 AlertDialog.Builder 객체를 생성한다.
              new AlertDialog.Builder(this)
              //대화상자의 제목을 설정한다.
              .setTitle("알림")
              //대화상자에 출력될 메세지 내용을 적는다.
              .setMessage("선택하신 위치를 설정 하시겠습니까?")
              //대화상자가 Back 버튼으로 닫히지 않도록 설정한다.
              .setCancelable(false)
              //좌측(Positive Button) 에 출력될 버튼을 설정한다.
              //해당 버튼을 클릭했을 때 처리할 문장을 리스너로 구성해준다.
              .setPositiveButton("확인", new DialogInterface.OnClickListener() {
               @Override
      public void onClick(DialogInterface dialog, int id) {
                        //Activity 에서 대화상자를 닫도록 메소드를 호출한다.
                     //Get_Cdn.this.dismissDialog(ID_2BUTTON_DIALOG);  -> 참고로 이부분은 지워도, 넣어도 똑같은 오류가 생기더라구요.ㅠㅠ
      //상의일 경우
                     if(toporbottom==true) {
                      //머리끝,발끝이 터치가 완료된 경우
                      if(cnt2==0){
                       //1px당 몇 cm 인지 계산해서 변수에 저장
                       cmperpx = Get_User_Info.user_height / (head_y - foot_y);
                       //cnt2값 1 증가
                       cnt2++;
                      }
                      //어깨 터치가 완료된 경우
                      else if(cnt2==1){
                       //어깨 너비 계산
                       shd_width = (shd_r_x - shd_l_x) * cmperpx;
                       //cnt2값 1 증가
                       cnt2++;
                      }
                      //가슴 터치가 완료된 경우
                      else if(cnt2==2){
                       //가슴 둘레 계산
                       chst_width = (chst_r_x - chst_l_x) * cmperpx;
                       //cnt2값 1 증가
                       cnt2++;
                      }
                      //양손목 터치가 완료된 경우
                      else if(cnt2==3){
                       //팔길이 계산
                       arm_leng = (float)(Math.sqrt(Math.pow(wrst_l_x - shd_l_x, 2)+Math.pow(wrst_l_y - shd_l_y, 2))) * cmperpx;
        //cnt2값 1 증가
                       cnt2++;
                      }
                      //모두 터치가 완료된 경우
                      else if(cnt2==4){
                       AlertDialog.Builder bld = new AlertDialog.Builder(Get_Cdn.this);
           bld.setTitle("알림");
           bld.setMessage("좌표설정이 완료되었습니다. 피팅하시려면 피팅하기를 누르세요.");
           bld.setPositiveButton("피팅하기", new DialogInterface.OnClickListener(){
            @Override
         public void onClick(DialogInterface dialog, int whichButton){
             //피팅하기 버튼을 눌렀읕 경우 사이즈 계산된 결과가 뜸
             Intent intent = new Intent();
             intent.setClass(Get_Cdn.this, Show_Usr_Size.class);
             startActivity(intent);
            }
           });
           bld.setNegativeButton("취소", new DialogInterface.OnClickListener(){
            @Override
         public void onClick(DialogInterface dialog, int whichButton){
             dialog.cancel();
             //취소 버튼을 눌렀을 경우, '키 좌표'부터 다시 설정함
             cnt2 = 0;
             cnt = 0;
             Intent intent = new Intent();
             intent.setClass(Get_Cdn.this, Get_Cdn.class);
             startActivity(intent);
            }
           });
           bld.show();
                      }
                     } else { //하의일 경우
                      //머리끝,발끝이 터치가 완료된 경우
                      if(cnt2==0){
                       //1px당 몇 cm 인지 계산해서 변수에 저장
                       cmperpx = Get_User_Info.user_height / (head_y - foot_y);
                       //cnt2값 1 증가
                       cnt2++;
                      }
                      //골반 터치가 완료된 경우
                      else if(cnt2==1) {
                       //골반둘레 계산
                       plvs_width = (plvs_r_x - plvs_l_x) * cmperpx;
                       //cnt2값 1 증가
                       cnt2++;
                      }
                      //양발목 터치가 완료된 경우
                      else if(cnt2==2) {
                       //다리길이 계산
                       leg_leng = (float)(Math.sqrt(Math.pow(ankle_l_x - plvs_l_x, 2)+Math.pow(ankle_l_y - plvs_l_y, 2))) * cmperpx;
                       //cnt2값 1 증가
                       cnt2++;
                      }
                      //모두 터치가 완료된 경우
                      else if(cnt2==3){
                       AlertDialog.Builder bld = new AlertDialog.Builder(Get_Cdn.this);
           bld.setTitle("알림");
           bld.setMessage("좌표설정이 완료되었습니다. 피팅하시려면 피팅하기를 누르세요.");
           bld.setPositiveButton("피팅하기", new DialogInterface.OnClickListener(){
            @Override
         public void onClick(DialogInterface dialog, int whichButton){
             //피팅하기 버튼을 눌렀읕 경우 사이즈 계산된 결과가 뜸
             Intent intent = new Intent();
             intent.setClass(Get_Cdn.this, Show_Usr_Size.class);
             startActivity(intent);
            }
           });
           bld.setNegativeButton("취소", new DialogInterface.OnClickListener(){
            @Override
         public void onClick(DialogInterface dialog, int whichButton){
             dialog.cancel();
             //취소 버튼을 눌렀을 경우, '키 좌표'부터 다시 설정함
             cnt2 = 0;
             cnt = 0;
             Intent intent = new Intent();
             intent.setClass(Get_Cdn.this, Get_Cdn.class);
             startActivity(intent);
            }
           });
           bld.show();
                      }
                     }

                     //cnt 0으로 초기화
      cnt = 0;
      
      //좌표선택이 완료될때까지는 계속해서 좌표를 선택하는 이 클래스(Get_Cdn.class)가 뜨도록 함
      if(cnt2 >= 0 && cnt2 <= 2) {
       Intent intent = new Intent();
       intent.setClass(Get_Cdn.this, Get_Cdn.class);
       startActivity(intent);
      }
                   
     }
                })
 
                // 우측(Negative Button) 에 출력될 버튼을 설정한다.
                // 해당 버튼을 클릭했을 때 처리할 문장을 리스너로 구성해준다.
                .setNegativeButton("취소", new DialogInterface.OnClickListener() {
                 @Override
                    public void onClick(DialogInterface dialog, int id) {
                  
                        //취소 버튼을 클릭했을 경우, 해당 부위를 처음부터 다시 설정하도록 함(cnt=0)
                        cnt = 0;
                        //대화상자를 취소하여 닫는다.
                        dialog.cancel();
                        //그리고 다시 Get_Cnd.class로 이동
                        Intent intent = new Intent();
      intent.setClass(Get_Cdn.this, Get_Cdn.class);
      startActivity(intent);
                    }
                })
                .show();
             }
               
                break;
            }
            default :
                dialog = null;
               
        }
        return dialog;
    }