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

안드로이드 화면이동하면 종료되는데 오류를 도저히 못찾겟어요 도와주세요

0 추천

학교에서 간단하게 테스트 할때는 잘됫엇는데 DB에 속성하나 추가하고 폼에서 입력된내용 받아서 DB저장하도록 수정해서 집에서 테스트해보니까 갑자기 강제종료되는데

 

도저히 이유를 못찾겟습니다 검색해보니까 매니페스트 등록이 안된거라고해서 다시확인햇는데 확실히 등록되있구요

 

메인화면에서 아래 파일로 이동하게되면 에러가납니다.

 

package com.example.dbbasicex1;

import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.Toast;

public class CustomerReg extends Activity {

	String[] interested ={"관심분야","없음","경영/경제",
			"과학","스포츠","여행","예술","외국어","요리","컴퓨터"};

	String selint;
	EditText ed_name = (EditText)findViewById(R.id.reditText1);
	RadioGroup rg_sex = (RadioGroup)findViewById(R.id.rradioGroup1);
	CheckBox ck_sms = (CheckBox)findViewById(R.id.rcheckBox1);
	
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.join_form);
        
        //목록화면으로
        
        Button bt_dr,rebtn;
        
        
        Spinner sp = (Spinner)findViewById(R.id.rspinner1);
        
		ArrayAdapter<String> adp = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,interested);
		
		sp.setAdapter(adp);
        
		sp.setOnItemSelectedListener(new OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				// TODO Auto-generated method stub
				selint = interested[position];
				Toast.makeText(getApplicationContext(), interested[position], 1000).show();
				
			}@Override
			public void onNothingSelected(AdapterView<?> parent) {
				// TODO Auto-generated method stub
				selint = interested[1];
				
			}
		});
        bt_dr = (Button)findViewById(R.id.rbutton1);
        bt_dr.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				String name,sex,sms;
				// TODO Auto-generated method stub
				try{
					name = ed_name.getText().toString();
					sex = "";
					
					if(rg_sex.getCheckedRadioButtonId() == R.id.rradio0)
					{
						sex = "남";
					}
					else if(rg_sex.getCheckedRadioButtonId() == R.id.rradio1)
					{
						sex = "여";
					}
					
					sms ="";
					if(ck_sms.isChecked())
					{
						sms ="SMS";
					}
				
					DBManeger dbmgr = new DBManeger(getApplicationContext());
				
					SQLiteDatabase sdb = dbmgr.getWritableDatabase();
				
					String sql = "insert into customers values ('" + name + "','" + sex + "','" + sms + "','" + selint + "')";
					
					sdb.execSQL(sql);
					dbmgr.close();
					Toast.makeText(getApplicationContext(), "입력되었습니다.", 1000).show();
				}
				catch(Exception e)
				{
					Toast.makeText(getApplicationContext(), "예외발생 : " + e, 1000).show();
				}
			}
		});
        rebtn = (Button) findViewById(R.id.returnbtn);
        rebtn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				
				
				
			Intent it = new Intent(getApplicationContext(),MainActivity.class);
			
			startActivity(it);
			finish();
			}
		});
    }

}

이건 로그캣에서 제일 처음 오류입니다.

FATAL EXCEPTION: main

Process: com.example.dbbasicex1, PID: 27029

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.dbbasicex1/com.example.dbbasicex1.CustomerReg}: java.lang.NullPointerException

나머지부분 로그캡쳐추가합니다

넥센우승 (140 포인트) 님이 2014년 5월 28일 질문
넥센우승님이 2014년 5월 28일 수정
몇번째 줄에서 오류가 나는지는 로그에 안나오던가요?
로그캣에서 언급된건 25번째줄밖에 없는데 그냥 에딧텍스트 선언부분이라서요 지웟다가 다시선언햇는데도 그대로네요
EditText ed_name = (EditText)findViewById(R.id.reditText1);

엑티비티가 생성되기 전에 findViewById를 사용해서 그런거 아닐가요?..
윗분 말이 맞는거 같습니다. findViewById자체가 onCreate부분에서 액티비티 뷰를 생성하고 난 뒤에 연결을 시켜줘야 되지 싶은데...
감사합니다 해결됫어요 ㅠㅠ

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...