讯飞语音听写API 未安装组件 错误码21001解决方法
今天测试讯飞语音实例,Android版本只有Eclipse版本,所以要从Eclipse导入Android Studio,但是导入之后使用功能就出现了21001错误码,在网上找了一些文档,可能有以下原因:
1. 有没有使用SpeechUtility.createUtility()设置appid
2. 有没有将libmsc.so放到工程中,jar包有Msc.jar、Sunflower.jar。
3. 如果使用的是讯飞语音+的本地功能,有没有安装讯飞语音+
4. 如果设备是android5.0及其以上,需要将工程中的armeabi和armeabi-v7a文件夹中都放上libmsc.so,如果你下载的SDK中没有armeabi-v7a对应的库,可以将armeabi中的libmsc.so复制一份到armeabi-v7a文件夹中
5. SpeechUtility.createUtility()如在Application中调用,需要在Mainifest中注册该Applicaiton。此方法不是必须在Appcation中调用,可在需要使用语音能力之前,例如进入语音搜索页面调用。
6. 使用Android Studio的开发者注意将so放在jniLibs目录下,或者在配置文件中指定so加载的路径,或者把so包装在jar里面。
下面有许多人说 第六条遇到的特别多,我也就想着试试第6条,但是看了项目根本没有jniLibs文件夹啊,就自己建了一个,但是依然不可以,这可怎么办呢?后来又找了一下如何将so文件导入Android studio的资料,结果发现只需要一句代码就解决了
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
这行代码的功能应该就是在为jniLibs设置文件夹,之前之所以不行应该是那种方式是以前的Android Studio版本,现在新版本应该改了结构了,就这样,大功告成!