工作环境(蓝色粗体字为特别注意内容)
1,系统环境:Win7 Ultimate sp1、Android Studio 3.2、gradle 4.6
这个错误很奇怪,明明交了钱,下载了SDK开发包,但是集成到项目中去使用离线功能就报错,但是在线语音转文字、语音识别都正常,很是郁闷。调试了半天,想到会不会是工程和appid对应不上呢?首先来了解一下讯飞语音的开发流程:
Step1:申请开发者账号,创建应用,添加功能(如离线识别、离线语音等等,新用户好像有免费使用额度,没有的话就只能购买了~)。
Step2:你会得到一个appid,这里要强调一下,就是你创建的应用中“应用名称”可以随便取,但是不能重复。唯一跟SDK关联的就是appid,跟APP具体的报名以及签名密钥没有半毛钱关系,这一点跟集成其他sdk的方式不太一样,其他sdk一般都需要app包名。其实内部的实现原理就是每个sdk开发包对应一个应用名称也就是对应一个appid,不能通用,可能sdk开发包里面有什么鉴权机制吧。
回到刚刚的问题,一般申请流程以及开发包没问题的话可能就是appid对应不上号的原因,我这个工程的讯飞语音模块是在一个旧的讯飞语音app上面开发的,可能残留了一些相关的文件,没有更新。干脆直接跑开发包里面的sample了,各种报错不兼容,估计是android studio2.x的老工程,费了九牛二虎之力终于升级成为新工程,于是将sample下载到手机,发现离线工程能够正常使用。
那问题出在哪呢?甚是诡异。MSC.jar以及JNI库都更新了的!发现sample工程里面有一个readme文件,于是打开,发现下面的内容:
难道差这个东西吗?于是将开发包中的res目录里面内容替换到工程, 发现以下三个文件:common.jet、xiaofeng.jet、xiaoyan.jet爆红
编译,下载到手机,完美运行!