クラウド側の統合に関するトラブルシューティング
このセクションでは、よく発生するエラーとその修正方法を説明します。Fire TVでアプリを実行し、Android StudioでLogcatを開くと、Fire TVでアプリのインストールや実行が失敗した理由を確認できます。エラーをフィルタリングすると、関連するメッセージを見つけやすくなる場合があります。
- Alexaがスキルから結果を取得しない
- アプリを起動できない - APIキーのエラー
- 証明書のフィンガープリントのエラー
- 別の開発者またはテスターのスキルを追加できない
- Alexaが「すみません、ちょっとうまくいきませんでした」と応答する
- Alexaがトランスポートコントロールに適切に応答しない
- サンプルアプリプロジェクトをビルドするときに、「Given final block not properly padded」(最終ブロックが適切にパディングされていない)というエラーが表示される
Alexaがスキルから結果を取得しない
Alexaが「(Streamzなどのスキル名ではなく)*Fire TV*から*
アプリを起動できない - APIキーのエラー
LogcatでInvalid API Key
またはUnable to decode APIKey...
と表示される場合、Androidでアプリに署名する際に、手順5: アプリに署名してセキュリティプロファイルを構成するで構成したカスタマイズされたデバッグ鍵が使用されていません。
APIキーは有効であっても、Android Studioが正しい署名構成でアプリに署名していない可能性があります。デバッグ署名構成にJavaキーストア(.jks)の詳細が指定されていることを確認してください。また、アプリの署名に使用された.jksの署名を使用してAPIキーが作成されたことも確認してください。
証明書のフィンガープリントのエラー
APIKeyDecoder: Failed to decode: Decoding failed: certificate fingerprint can't be verified!
と表示される場合、セキュリティプロファイルのフィンガープリント認証に問題があります。セキュリティプロファイルがアプリのパッケージ名に関連付けられていることを確認してください。手順5: アプリに署名してセキュリティプロファイルを構成するを参照してください。
別の開発者またはテスターのスキルを追加できない
別の開発者またはテスターのスキルをFire TVスキルに追加するには、開発者コンソールの [設定] > [ユーザー権限] で、その開発者またはテスターを開発者として追加してください。
Alexaが「すみません、ちょっとうまくいきませんでした」と応答する
この場合、無効なLambdaコードなど、さまざまなエラーの可能性が考えられます。Lambdaコードを変更した場合は、コードを以前のバージョンに戻して、この応答が発生しなくなるかどうかを確認してください。
Alexaがトランスポートコントロールに適切に応答しない
一時停止、早送りなどのトランスポートコントロールの発話でアプリをテストしていて、Alexaが「すみません、ちょっとわかりません」と応答する場合、内部ツールを使用してクラウド上のAlexaの潜在的な問題を調査するよう、Amazonのエンジニアに依頼する必要があります。たとえば、ビデオスピーチレットでは、リクエストがメディアプレーヤーやほかのビデオクライアントから開始されたことが検出できないと、トランスポートコントロールリクエストが拒否されることがあります。これは開発者自身が修正できる問題ではありません。
サンプルアプリプロジェクトをビルドするときに、「Given final block not properly padded」(最終ブロックが適切にパディングされていない)というエラーが表示される
これは、「build.gradle (Module:app)」ファイルで構成された署名鍵の不一致が原因である可能性があります。signingConfigs
ブロックを削除してから、プロジェクトを再ビルドしてみてください。手順5: アプリに署名してセキュリティプロファイルを構成するの手順に従って署名鍵を再構成し、確認メッセージをクリックしてGradleファイルとプロジェクトを再同期します。
Alexaで音声を使用してアプリを起動できない
開発中にAlexaディレクティブを受信するには、Fire TV対応アプリを(発話前に)手動で起動しておく必要があります。アプリをライブアプリテストにプッシュし、フィールドエンジニアがASINをアプリのパッケージ名にマッピングした後であれば、アプリの名前を発話で明示的に指定できます。
Lambdaエラー - デバイスが見つからない、またはnull応答が発生した
Lambda関数で、正しいクライアントIDとクライアントシークレットを使用していることを確認してください。
検出イベントエラー500が発生する
レスポンスコード500が返された場合、または「Internal service exception」と表示される場合は、正しいスキルIDをアプリで使用していることを確認してください。スキルに開発者として追加されていない別の開発者が、そのアプリを起動したことが原因である可能性もあります。
Alexaコマンドでアクションが実行されない
ディレクティブがLambda関数に送信されていることを確認してください。AWSのCloudWatchにアクセスして、左側のメニューで [ログ] を選択し、Lambda関数のロググループをクリックします。ここで、INFO Event
を含むエントリがあるかどうかを確認します。そのようなエントリがない場合は、スキルエンドポイントにLambda関数が追加されていることと、Lambda関数にスキルトリガーが追加されていることを確認します。また、レスポンスにエラーが発生していないかどうかも確認してください。