ToneGenerator Init failed Crash 崩溃
需求需要在扫码时产生一个短促的提示音, 搜了下像这样实现。测试时发现多次扫码后,会触发程序崩溃问题。
异常如下
java.lang.RuntimeException: Init failed at android.media.ToneGenerator.native_setup(Native Method) at android.media.ToneGenerator.<init>(ToneGenerator.java:746) at com.ganzhi.app.android.ganzhiandroid.MainOneActivity$2.onReceive(MainOneActivity.java:505) at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0(LoadedApk.java:1391) at android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA.run(Unknown Source:2) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6747) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:860)
代码如下:
toneGenerator = new ToneGenerator(AudioManager.STREAM_MUSIC, 100); toneGenerator.startTone(ToneGenerator.TONE_CDMA_PIP,150);
一番搜索, 以下为最佳答案, 加上以后,循环测试, 不再引起异常了。
toneGenerator.release();
原因。。
/**
* Releases resources associated with this ToneGenerator object. It is good
* practice to call this method when you're done using the ToneGenerator.
*/
释放ToneGernerator 对象关联的资源。当你使用完成后,调用下这个方法是个好习惯。
本文来自博客园,作者:锅叔
转载请注明原文链接:https://www.cnblogs.com/uncleguo/p/15977571.html