0

我创建了新的Android应用程序,因为它显示静态信息,我创建了html5并将 html5 文件调用到我的 webview 我的 html 文件功能之一是单击按钮时播放mp3我在 html 和 android 之间做了我的接口但是当我测试项目时在设备上,我收到此消息,应用程序意外停止。我从教程中获得了这个项目,本教程没有扩展 Activity,但是当我删除它时,发生了扩展 Activity错误“MediaPlayer 类型中的方法 create(Context, int) 不适用于参数 (WebAppInterface, int)”。

public class WebAppInterface  extends Activity    {
Context mContext;
MediaPlayer mp;


WebAppInterface(Context c) {
    mContext = c;
}


@JavascriptInterface

public void playsound() {
    mp=MediaPlayer.create(WebAppInterface.this, R.raw.sound);

}

}

 <input type="button" value="play mp3" onClick="playmp3()" />
 <script type="text/javascript">
 function playmp3()
  {
      Android.playsound();
  }
 </script>

06-23 15:46:20.250: E/AndroidRuntime(338): 致命异常: WebViewCoreThread 06-23 15:46:20.250: E/AndroidRuntime(338): java.lang.NullPointerException 06-23 15:46:20.250: E/AndroidRuntime(338): 在 android.content.ContextWrapper.getResources(ContextWrapper.java:80) 06-23 15:46:20.250: E/AndroidRuntime(338): 在 android.media.MediaPlayer.create(MediaPlayer.java :641) 06-23 15:46:20.250: E/AndroidRuntime(338): 在 com.ramadan.WebAppInterface.showToast(WebAppInterface.java:23) 06-23 15:46:20.250: E/AndroidRuntime(338):在 android.webkit.WebViewCore.nativeTouchUp(Native Method) 06-23 15:46:20.250: E/AndroidRuntime(338): 在 android.webkit.WebViewCore.nativeTouchUp(Native Method) 06-23 15:46:20.250: E /AndroidRuntime(338): 在 android.webkit.WebViewCore.access$3300(WebViewCore.java:52) 06-23 15:46:20.250: E/AndroidRuntime(338):在 android.webkit.WebViewCore$EventHub$1.handleMessage(WebViewCore.java:1150) 06-23 15:46:20.250: E/AndroidRuntime(338): 在 android.os.Handler.dispatchMessage(Handler.java:99) 06 -23 15:46:20.250: E/AndroidRuntime(338): 在 android.os.Looper.loop(Looper.java:123) 06-23 15:46:20.250: E/AndroidRuntime(338): 在 android.webkit .WebViewCore$WebCoreThread.run(WebViewCore.java:621) 06-23 15:46:20.250: E/AndroidRuntime(338): 在 java.lang.Thread.run(Thread.java:1096)46:20.250: E/AndroidRuntime(338): 在 java.lang.Thread.run(Thread.java:1096)46:20.250: E/AndroidRuntime(338): 在 java.lang.Thread.run(Thread.java:1096)

4

1 回答 1

0

问题就在这里

<code>



public void playsound() {

  MediaPlayer mp= MediaPlayer.create(mContext,R.raw.sound);
  mp.start();

}

因为我用 mContext 替换了 WebAppInterface.this 并且效果很好

于 2013-06-23T19:32:31.453 回答