云端集成故障排除 (VSK Fire TV)
本部分列出了常见错误以及解决这些错误的方法。如果您在Fire TV上运行应用,然后在Android Studio中打开Logcat,可以看到应用无法在Fire TV上安装或运行的原因。您可能需要筛选错误才能更方便地查看这些消息。
- Alexa无法从您的技能中获得结果
- 无法启动应用 - API密钥错误
- 证书指纹错误
- 无法为其他开发者或测试者添加技能
- Alexa说:“Sorry, something went wrong”
- Alexa对传输控制的响应不正确
- 构建示例应用项目时,您收到一条错误消息,内容为“Given final block not properly padded”
Alexa无法从您的技能中获得结果
如果Alexa回应为“Getting *
无法启动应用 - API密钥错误
如果您在Logcat中看到Invalid API Key
(API密钥无效)或Unable to decode APIKey...
(无法解码APIKey...),则Android不会使用您在步骤5: 对应用签名并配置安全配置文件中配置的自定义调试密钥对应用进行签名。
API密钥可能有效,但是Android Studio可能未使用正确的签名配置对您的应用进行签名。确保已在调试签名配置中指定您的Java密钥库(.jks)详细信息。另外,请确保API密钥使用.jks中的签名创建,这些签名用于对您的应用进行签名。
证书指纹错误
如果您看到APIKeyDecoder: Failed to decode: Decoding failed: certificate fingerprint can't be verified!
(未能进行解码:解码失败:无法验证证书指纹!),则问题出在安全配置文件中的指纹认证上。确保您的安全配置文件与应用的程序包名称相关联。参见步骤5: 对应用签名并配置安全配置文件。
无法为其他开发者或测试者添加技能
您可以在开发者控制台的设置>用户权限中将其他开发者或测试者添加为开发者,从而将他们添加到Fire TV技能中。
Alexa说:“Sorry, something went wrong”(对不起,出了点问题)
这可能涉及许多错误,包括Lambda代码无效。如果您最近对Lambda代码进行了更改,请恢复到较早版本,看看这样能否解决此错误。
Alexa对传输控制的响应不正确
如果您使用传输控制表述(例如Pause [暂停]、Fast-forward [快进] 等)测试应用,而且Alexa说:“Sorry, I don't know that one”(抱歉,我不能识别),那么您可能需要亚马逊工程师使用内部工具在云端调查Alexa,以调查潜在的问题。例如,Video Speechlet可能因为它没有检测到这些请求是从媒体播放器还是其他视频客户端发起的,而拒绝了您的传输控制请求。这不是您可以自行解决的问题。
构建示例应用项目时,您收到一条错误消息,内容为“Given final block not properly padded”(给定的最后一个区块未正确填充)
这可能是由于“build.gradle (Module: app)”文件中配置的签名密钥不匹配所致。尝试删除signingConfigs
区块,然后重建您的项目。按照步骤5: 对应用签名并配置安全配置文件中的说明重新配置您的签名密钥,然后单击提示以将您的Gradle文件与您的项目重新同步。
Alexa无法通过语音启动应用
在开发过程中,应手动启动您的Fire TV应用(在说出表述之前启动应用),以便能够接收Alexa指令。在您将应用推送到动态应用测试并且现场工程师将您的ASIN映射到应用的程序包名称后,您便可以在表述中显式地以您应用的名称为目标。
Lambda错误 - 找不到设备/响应为空
确保在Lambda函数中使用正确的客户端ID和客户端密钥。
Discovery事件错误500
如果您收到响应码500或看到“Internal service exception”(内部服务异常),请确保您在应用中使用了正确的技能ID。另一个原因可能是另一位开发者在启动您的应用时没有被添加为开发者。
Alexa命令不执行任何操作
检查指令是否已发送到您的Lambda。前往AWS中的CloudWatch。在左侧菜单中选择Logs(日志),然后单击Lambda日志组。检查是否有包含INFO Event
的条目。如果没有此类条目,则检查您是否在技能终端节点中添加了Lambda函数并向Lambda添加了技能触发器。此外,检查响应中是否有错误。