2011-01-07 2 views
0

나는 하나 개의 주요 활동 및 3 개 개의 버튼 (세 가지 다른 건 소리) 그래서이상한 힘이 가까운

있는 XML 파일이 있습니다.

여기 보이는 방법 -

public class gunstats extends Activity { 

    public gunstats(Bundle onSavedStateInstance) { 


     final MediaPlayer mp = MediaPlayer.create(this, R.drawable.deagle); 

     Button button3 = (Button)this.findViewById(R.id.button3); 
     button3.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mp.start(); 
      } 
     }); 
    } 
} 

문제는 그 내가 에뮬레이터, 모든 힘 닫히고에서 응용 프로그램을 열 때. logcat을 확인하면 "원인 : java.lang.InstantiationException : com.gunstats.gunstats"가 표시됩니다.

이 문제의 원인은 무엇입니까?

+3

당신은 정말 – Falmarri

답변

2

이것은 생성자에서 코드를 실행하고 있기 때문입니다. Activity의 생성자에서는 코드를 실행하면 안됩니다. 코드를 모두 Activity#onCreate으로 옮겨야합니다.

Activity Lifecycle에 매우 익숙해야합니다.

+0

임 아직도 점점 힘에 가까운 안드로이드 dev에 웹 사이트의 기본 튜토리얼의 일부를 통해 가야의 문서이며, Audio and Video; 여기

은 몇 가지 예입니다 공용 클래스 gunstats는 활동 { \t @Override 공공 무효에서 onCreate (번들 savedInstanceState) { super.onCreate (savedInstanceState)를 확장; setContentView (R.layout.main); 최종 MediaPlayer mp = MediaPlayer.create (this, R.drawable.deagle); – Alex

+0

질문을 업데이트하면 전체 코드를 볼 수 있습니다 ... – WarrenFaith

0

전체 수업입니까? 그렇다면 : 활동이 (적어도 비 만약 당신이 닿아 야)

  • 을 생성자가 없습니다

    1. 당신은 당신은 아무데도 setContentView(R.layout.my_layout)
  • +0

    와우, 완전히 그 부분을 놓쳤습니다! 감사합니다, 저를 도와주세요! – Alex

    0

    와 내용을 설정하지 않은 onCreate() 방법을

  • 를 구현해야 다른 사람들은 당신이 Activity 라이프 사이클을 따르지 않는다고 지적했습니다.
    R.drawable.deagle은 사운드 파일인가요? 그렇다면 /drawable/ 디렉토리에 있어서는 안됩니다. /raw/과 같은 곳으로 이동하십시오. 여기

    Audio DemoMediaPlayer