좋아요. DDMS를 사용하여 코드 디버깅을 시도 했으므로 qutie에서 아직 그 실행을 중단 할 수 없습니다. 내 프로그램이 시작될 때 충돌하기 때문이라고 생각합니다. 어쨌든, 나는 이것을 친구에게 보여 주었고, 내가 뭘 잘못하고 있는지 알 수 없다. 누군가 내 앱이 시작시에 충돌하는 이유를 지적 할 수 있습니까?새로운 응용 프로그램이 시작시 충돌하고 디버그가 도움이되지 않습니다.
감사 :
좋아요. DDMS를 사용하여 코드 디버깅을 시도 했으므로 qutie에서 아직 그 실행을 중단 할 수 없습니다. 내 프로그램이 시작될 때 충돌하기 때문이라고 생각합니다. 어쨌든, 나는 이것을 친구에게 보여 주었고, 내가 뭘 잘못하고 있는지 알 수 없다. 누군가 내 앱이 시작시에 충돌하는 이유를 지적 할 수 있습니까?새로운 응용 프로그램이 시작시 충돌하고 디버그가 도움이되지 않습니다.
감사 :
당신이 전역 영역에서 UI 요소를 작성한다이 문제. 전역 객체로 만들려면 해당 객체를 선언 할 수 있지만 컨텐츠 뷰를 설정해야만 인스턴스를 생성 할 수 있습니다. 예 :
private RadioButton rockRB;
private RadioButton paperRB;
private RadioButton scissorsRB;
private TextView result;
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Content View Must be set before making UI Elements
rockRB = (RadioButton)findViewById(R.id.radioRock);
paperRB = (RadioButton)findViewById(R.id.radioPaper);
scissorsRB = (RadioButton)findViewById(R.id.radioScissors);
result = (TextView)findViewById(R.id.result);
onCreate가 실행되기 전에 실행되지 않습니까? onCreate 범위에 넣어야합니까? 네,이 아이디어는 현재로서는 가능한 한 글로벌하게 만드는 것이 었습니다. – BloodyIron
클래스 정의가 OnCreate 메서드보다 먼저 발생하기 때문에 OnCreate 메서드에서 해당 정의를 사용할 수 없으므로 의미가 있습니다. 전역 적으로 선언하고 OnCreate에서 인스턴스를 생성하면 클래스 전체에서 사용할 수 있습니다. – Pyrodante
기억 : 모든 UI 요소는 setContentView – Pyrodante
실제로는 매우 간단합니다. 클래스를 초기화하는 동안 rockRB, paperRB, scissorRB 및 결과 변수를 초기화합니다. findViewById (...)를 호출 할 때 아직 레이아웃이로드되지 않았으므로 지정된 ID가있는 뷰가 없습니다. 따라서 findViewById 함수는이를 나타 내기 위해 null을 반환합니다. 나중에 저장된 ID (null)를 사용하려고하면 널 포인터 예외가 발생하고 전체 응용 프로그램이 충돌합니다.
문제를 해결하려면 findViewById (...)를 사용하여 변수의 초기화를 setContentView 문 아래의 onCreate 함수로 이동하고 setOnClickListener 문 앞에 입력하십시오. 이처럼
:
공용 클래스 RockPaperScissorsActivity가 활동을 확장은 Button.OnClickListener를 구현 { /** 활동이 처음 생성 될 때 호출됩니다. */
private RadioButton rockRB;
private RadioButton paperRB;
private RadioButton scissorsRB;
private TextView result;
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rockRB = (RadioButton)findViewById(R.id.radioRock);
paperRB = (RadioButton)findViewById(R.id.radioPaper);
scissorsRB = (RadioButton)findViewById(R.id.radioScissors);
result = (RadioButton)findViewById(R.id.result);
rockRB.setOnClickListener(this);
paperRB.setOnClickListener(this);
scissorsRB.setOnClickListener(this);
}
및
등등 ...
안드로이드 질문 프로그래밍을 처리하지 않습니다, 그래서 SO에 여기를 마이그레이션. –
어떤 종류의 오류 메시지가 있습니까? 귀하의 링크에서 하나의 활동 파일 만 볼 수 있습니다. 매니페스트를 제대로 설정 했습니까? – Jlange