마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 fatal exception error main [closed]

0 추천
어제 밤부터 계속 에러 나있어서 인터넷 다뒤져도몰겠고 소스 아무리 봐도 에러없는거 같던데

fatal exception error main뜨네요 소스는 컴파일시는 에러없다 실행시 에러뜨면서 종료되네요

오류정보

10-29 14:17:40.249: D/AndroidRuntime(9112): Shutting down VM
10-29 14:17:40.249: W/dalvikvm(9112): threadid=1: thread exiting with uncaught exception (group=0x418202a0)
10-29 14:17:40.249: E/AndroidRuntime(9112): FATAL EXCEPTION: main
10-29 14:17:40.249: E/AndroidRuntime(9112): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kumoto.autopaycalculater/com.kumoto.autopaycalculater.MainA}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.app.ActivityThread.access$700(ActivityThread.java:140)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.os.Looper.loop(Looper.java:137)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.app.ActivityThread.main(ActivityThread.java:4946)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at java.lang.reflect.Method.invokeNative(Native Method)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at java.lang.reflect.Method.invoke(Method.java:511)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1036)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:803)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at dalvik.system.NativeStart.main(Native Method)
10-29 14:17:40.249: E/AndroidRuntime(9112): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button
10-29 14:17:40.249: E/AndroidRuntime(9112):     at com.kumoto.autopaycalculater.MainA.onCreate(MainA.java:36)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.app.Activity.performCreate(Activity.java:5206)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
10-29 14:17:40.249: E/AndroidRuntime(9112):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
10-29 14:17:40.249: E/AndroidRuntime(9112):     ... 11 more
10-29 14:17:42.019: I/Process(9112): Sending signal. PID: 9112 SIG: 9
 

 

 

이게 오류정보입니다 디버그에 들어가면 소스를 찾을수 없다 나오네요 초보입니다...개초보

java소스입니다.

package com.kumoto.autopaycalculater;

import java.util.Calendar;
import java.util.GregorianCalendar;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;

public class MainA extends Activity {
    int year1=0,month1=0,day1=0;                                                //일반변수
    
    
    Button btnDate,AddInfo,Calculate,Instruction;                //xml 변수
    TextView Datev;
    Intent intent,Add,Cal,Ins,Adv,Dev,Bas;
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btnDate                    =(Button)     findViewById(R.id.btnDate);                    //액티비티 변수 연결
        AddInfo                =(Button)     findViewById(R.id.btnAddInfo);
        Calculate            =(Button)     findViewById(R.id.btnCalcutate);
        Instruction                =(Button)    findViewById(R.id.btnInstruction);        
        Datev                    =(Button)     findViewById(R.id.tvDatev);
        
        Calendar cal=new GregorianCalendar();                                        //자바 달력 저장api
        year1=cal.get(Calendar.YEAR);
        month1=cal.get(Calendar.MONTH);
        day1=cal.get(Calendar.DAY_OF_MONTH);   
        
        update();
        
        btnDate.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                new DatePickerDialog(MainA.this, mDateSetListener, year1, month1, day1).show();            //날짜설정
                
            }
        });
        AddInfo.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
            Intent Add=new Intent(MainA.this ,Add_Work_InfomationA.class);
            startActivity(Add);
            
                
            }
        });
        Calculate.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent Cal=new Intent(MainA.this,CalculateA.class);
                startActivity(Cal);
                
            }
        });
        Instruction.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent Ins=new Intent(MainA.this,InstructionA.class);
                startActivity(Ins);
                
            }
        });
        
       
        
    };

    
   

    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }
    

    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO 자동 생성된 메소드 스텁
        switch(item.getItemId()){
        case R.id.itBasicInfo:
            Intent Bas=new Intent(MainA.this,Basic_InfomationA.class);
            startActivity(Bas);
        case R.id.itAdvice:
            Intent Adv=new Intent(MainA.this,AdviceA.class);
            startActivity(Adv);
        case R.id.itDeveloperStory:
            Intent Dev=new Intent(MainA.this,DeveloperStoryA.class);
            startActivity(Dev);
        }
        return false;
    }

    DatePickerDialog.OnDateSetListener mDateSetListener =new DatePickerDialog.OnDateSetListener() {
        
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
        year1=year;
        month1=monthOfYear;
        day1=dayOfMonth;
            
        }
    };
    void update() {
        // TODO 자동 생성된 메소드 스텁
        Datev.setText(String.format(" %d.%d.%d ", year1, month1 + 1, day1));
    }
}
    
 

 

 

전부 버튼 누르던가 메뉴 눌러서 나온 아이템누루면 다른 액티비티로 연결하는 소스 입니다.

메인이고요

문제좀 찾아주심 정말 감사드려요

급합니다
질문을 종료한 이유: 찾았음 죄송 텍스트뷰연결시 오류
쿠모투 (200 포인트) 님이 2013년 10월 29일 질문
쿠모투님이 2013년 10월 29일 closed
Datev  =(Button)     findViewById(R.id.tvDatev);
보니까 버튼을 잘못 형변환했거나 버튼으로 잘못 형변환 했을때 형변환 오류가 난거네요...

  Datev                    =(Button)     findViewById(R.id.tvDatev);요기가 잘못된듯한데 의미상으로는 tv는 TextView를 의미하니까요
...