问题描述:一开始监听 马上就返回error 没有匹配的识别结果:7
/// class extends UnityPlayerActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
sr = SpeechRecognizer.createSpeechRecognizer(this, new ComponentName(this, VoiceRecognitionService.class)); //start之后还未stop就立马结束返回错误
//sr = SpeechRecognizer.createSpeechRecognizer(this); //如果调用原生的语音识别则正常返回识别结果
sr.setRecognitionListener(new listener());
}
public void BtnOnClick()
{
//会报错不在主线程中使用用SpeechRecognizer,故用到post
this.mUnityPlayer.post(new Runnable() {
@Override
public void run() {
if (!isStart)
{
sr.cancel();
Intent intent = new Intent();
bindParams(intent);
sr.startListening(intent);
Log.v(TAG,"startListening");
}
else
{
sr.stopListening();
Log.v(TAG,"stopListening");
}
isStart = !isStart;
UnityPlayer.UnitySendMessage("BuzzThree", "SystemChange", "Android Even Receiver : " + num++);
}
});
}
Log如下:
以上是我们自己的代码,也有试过直接修改你们的demo代码,如下:
完全没有修改你们的识别逻辑代码,直接打开demo activity,结果跟上面帖出来的LOG图一样,System.err报错,结果为7.
我们是在unity3d中对接你们的SDK,调用android原生的接口可行,使用百度的出问题,期望给出解决办法,不胜感激!
lifezyts:
回复135*****951:请问如何设置为只支持 "armeabi" 架构的
回复lifezyts:删除其它同级目录
135*****951:
我也遇到这个问题,现在解决了。
我在开发时,这个应用开始时是支持各种ABI架构的, 但是百度提供的库(*.so)文件只有 "arm64-v8a"、"armeabi" ,这两种架构的。
之后,我设置这个应用为只支持 "armeabi" 架构的,就可以正常运行了。
回复135*****951:请问如何设置为只支持 "armeabi" 架构的
多谢反馈
135*****951:
我也遇到这个问题,现在解决了。
我在开发时,这个应用开始时是支持各种ABI架构的, 但是百度提供的库(*.so)文件只有 "arm64-v8a"、"armeabi" ,这两种架构的。
之后,我设置这个应用为只支持 "armeabi" 架构的,就可以正常运行了。
回复135*****951:but I try your answer , it occurs again???
多谢反馈
我也遇到这个问题,现在解决了。
我在开发时,这个应用开始时是支持各种ABI架构的, 但是百度提供的库(*.so)文件只有 "arm64-v8a"、"armeabi" ,这两种架构的。
之后,我设置这个应用为只支持 "armeabi" 架构的,就可以正常运行了。
已经发现unity3d的编译工具会丢掉sdk中的2个xml文件,建议将sdk的jar通过WinRAR解压并将xml提取并防止到自己工程的相同包路径下