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 对象关联的资源。当你使用完成后,调用下这个方法是个好习惯。

 

posted @   锅叔  阅读(163)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
点击右上角即可分享
微信分享提示