使用讯飞语音识别的空指针错误

為{幸葍}努か 提交于 2020-03-08 09:56:48

问题:

刚开始用讯飞写小Demo的时候比较快,基本上没有遇见什么错误,

主要是参考了这篇博客:https://blog.csdn.net/chenli_001/article/details/73603917

但是后面在项目里面集成的时候,一直显示空指针错误,一连好几天都没弄好。

java.lang.NullPointerException: Attempt to invoke virtual method ‘boolean com.iflytek.cloud.SpeechSynthesizer
.setParameter(java.lang.String, java.lang.String)’ on a null object reference

 

原因:

空指针也就是说使用的指针为null,所以空指针错误就是说使用这个指针调用方法相当于用null来调用方法,所以就要从这个指针入手解决。参考:https://zhidao.baidu.com/question/692912236600019684.html

 

解决(几种方法都可以试一下):

1.检查时候将官网sdk中的demo的libs下的所有文件全部复制到项目的libs和jniLibs目录下,同时libs下的jar包要右键add添加

2.检查APPID和项目中需要的sdk(注意这个sdk是和每个APPID匹配的,一定要用自己应用的APPID),同时确保初始化语句在onCreate中

// 将“12345678”替换成您申请的APPID,申请地址:http://www.xfyun.cn
// 请勿在“=”与appid之间添加任何空字符或者转义符
SpeechUtility.createUtility(context, SpeechConstant.APPID +"=12345678");

3.使用debug查错, 可以定位到哪里出了问题,即使显示不了具体哪地方出错,但是一个大概的范围还是能确定的,我中间是一遇到Loop语句程序就会停止,说明就是在这地方出错了,出现了空指针,更具具体情况可以修改或是注释掉都可以。

4.如果还不行,可以从下面几篇博客找找灵感:

https://blog.csdn.net/android123it/article/details/79983845?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

https://blog.csdn.net/pandayima/article/details/76863832?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

https://blog.csdn.net/ggsza/article/details/103262695

 

总结

1.这次集成讯飞语音到项目中可谓是历经千辛万苦,熬了好几天,最后终于成功了,太激动了。

2.这次解决还有一个重要原因,就是使用debug查错,可以定位到哪里出了问题,即使显示不了具体哪地方出错,但是一个大概的范围还是能确定的,我中间是一遇到Loop语句程序就会停止,说明就是在这地方出错了,出现了空指针,更具具体情况可以修改或是注释掉都可以。

3.空指针也就是说使用的指针为null,所以空指针错误就是说使用这个指针调用方法相当于用null来调用方法,所以就要从这个指针入手解决。参考:https://zhidao.baidu.com/question/692912236600019684.html

4.中间还碰到一个小问题,就是我使用的Activity实现了点击事件的方法,所以中间使用按钮的监听事件setOnClickListener就不行,必须在重写的onClick()中实现按钮的触发。

public class VersionCheckActivity extends AppCompatActivity implements View.OnClickListener{

 

参考:

几乎将全网的各种情况都看了个遍

https://blog.csdn.net/zhanglongxiang/article/details/49913747?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

https://blog.csdn.net/qq_19269585/article/details/77606661?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

https://blog.csdn.net/u013533369/article/details/102539676?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!