今天在使用讯飞语音的SDK的时候,发现在平板上退出App重新打开App显示白屏,而在手机上面一切正常!经过层层调试,发现在Application中对SDK初始化的时候,主线程阻塞在了以下语句中:
SpeechUtility.createUtility(appContext, param.toString());
不应该呀,难道是*.so文件的原因?或者是SDK自带的bug???经验证,使用SDK DEMO是可以正常操作的,这就排除了SDK自带的bug,怀疑有可能是工程中的库跟demo中的库不完全一直所致,干脆就将demo中所有的库以及assert都拷贝到项目中,问题依旧!
于是怀疑退出程序的时候,SDK资源没有完全销毁掉,导致重新进入程序的时候出现问题,我在VoiceManager的destroy()函数中进行如下操作:
@Override
public void destroy() {
stop();
cancel();
if (null != mTts) {
mTts.stopSpeaking();
// 退出时释放连接
mTts.destroy();
mTts = null;
}
if (null != mIat) {
mIat.stopListening();
mIat.destroy();
mIat = null;
}
Logger.e(this,"Voice Manager destroy s