2011-08-11 7 views
0

ImageButtonでクリックしたときにサウンドが鳴り響き、アプリケーションがクラッシュして、かなり長い間、私のコードを凝視していました。私はあなたが私が間違っていることを見てもらえるように助けてくれることを願っていました。サウンドを再生しようとしたときにImageButtonがクラッシュする

私は失敗したimageButtonを使って手動でonClickイベントを作成しようとしましたが、Eclipseのドラッグアンドドロップシステムを試してみました。

私のコードを掲載し、皆さんが解決策を見つけることを願っています。事前に

おかげで、

package com.example.Jeffrey; 

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 

public class Jeffrey extends Activity { 
MediaPlayer mp; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mp = MediaPlayer.create(this, R.raw.noise); 

    // View rakker = findViewById(R.id.imageView1); 
    //rakker.setOnClickListener(this); 

} 

public void test123() 
{   
    mp.start(); 

} 

}

コードで行くのxml:

<ImageButton 
android:src="@drawable/rakker" 
android:layout_height="250px" 
android:layout_width="wrap_content" android:id="@+id/imageView1" 
android:onClick="test123"></ImageButton> 
+0

デバッグログが表示される可能性はありますか? 0) – Matt

+0

これらがエラーのログファイルを表しているかどうかわからない(Eclipseの新機能) roid.ide.eclipse.adt 2 0 2011-08-11 18:29:32.705 !メッセージAndroidManifest:未知のイメージを無視する「XML要素 ENTRYのcom.android.ide.eclipse.adt 2 0 2011-08-11 18:29:!32.977 MESSAGE AndroidManifest:無視不明 'ImageBu' XML要素 ENTRYのcom.android.ide!。 eclipse.adt 2 0 2011-08-11 18:29:33.241 !メッセージAndroidManifest:未知の 'ImageButt' XML要素を無視する !ENTRY org.eclipse.ui 4 4 2011-08-11 18:50:13.170 ! MESSAGE参照された部分はまだ存在しません:org.eclipse.ui.views.ProblemView。 –

+0

ええ、注釈とスペースが失われてしまい、ごめんなさい。それがなぜ起こったのか分かりません:| –

答えて

1

それはおそらく、それがもしあればのためのことを返す考慮NULL値をチェックする価値がありますMediaPlayerオブジェクトの作成に失敗した理由です。また、終了したら(おそらくヌルチェックでも)解放されるはずです。

EDIT:私の以前の答えは検討する価値があるかもしれませんしながら、

、あなたがあなたのonClickメソッドは、パラメータとしてビューを取るしていることは間違いなく必要です。

//at the top of the file 

import android.view.View; 

public void test123(View v){ 
    //v is the view that has been clicked (the ImageButton from your .xml file) 
    //do stuff 
} 
+0

ビューに同意しましたが、この場合、ImageButtonを処理するためにonClickイベントを使用するのではなく、xmlコマンドによって呼び出されるカスタムメソッド:android:onClick = "test123"を使用しています。 。 。 。私はパラメータとしてビューを与えようとしましたが、Eclipseは私にデバッグエラーを与えます ( "ビューはタイプに解決できません") –

+0

あなたはandroid.view.Viewをインポートしましたか? (私はそれが自動的にプロンプ​​トされていたはずだと思うが) – Matt

+0

Eclipseにそれを加えたが、Eclipseは使用されていないと私に警告した。しかし、まだ結果なしでそれをテストしました –

1

posetに書かれているコードに基づいて、その問題はMediaPlayerの使用に関連していると言えるでしょう。 MediaPlayerには、アイドル状態、初期状態、準備状態、開始状態など、いくつかの状態があります。

あなたのコードでは、リソースIDを渡してメディアプレーヤーオブジェクトを作成します。メディアプレーヤーをアイドル状態から初期化状態にする。次にprepare()を呼び出す必要があります。しかし、あなたはstart()を呼び出しています。これがクラッシュを引き起こしている可能性があります。

MediaPlayerの状態遷移は、アンドロイドデベロッパーのウェブサイトできちんと説明されています。 (Link

Shash

1

)は(mp.prepareとMediaPlayerのを準備します。 mp.start()を呼び出す前に。

関連する問題