我创建了新的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)