開発者コンソール

一般的なトラブルシューティング

一般的なトラブルシューティング

このページでは、Fire TV統合SDKとの統合に関する一般的な問題について説明します。

デバイス上にSDKログが生成されない

デバイスがサポートされていない
サポート対象のデバイスを使用していることを確認してください。現在サポートされているデバイスタイプのリストについては、Amazonの担当者に確認してください。
デバイスのソフトウェアが古い
サポート対象のデバイスを使用している場合は、最新のソフトウェアがインストールされていることを確認してください。[設定] > [My Fire TV] > [バージョン情報] の順にクリックし、[アップデートをチェック] をクリックします。
アーティファクトがアプリに正しく組み込まれていない
サポート対象のデバイスを使用していて、最新のソフトウェアがインストールされている場合は、アーティファクトがアプリに正しく組み込まれていることを再確認してください。詳細については、Fire TV統合SDKをアプリに組み込むを参照してください。

アプリでFire TV統合SDKを呼び出してSDKログを生成していても、[続きを観る] 行にコンテンツが何も表示されない

チェックポイント#1 - 機能が有効になっていることを確認する
使用中のCustomerIDでコンテンツパーソナライゼーション機能が有効になっていることを確認します。そのためには、[設定] > [環境設定] > [プライバシー] > [アプリによる共有を管理]の順にクリックします。[アプリによる共有を管理] オプションが表示されない場合は、Amazonの担当者に連絡し、CustomerIDとDSNをお知らせください。
[設定] > [環境設定] > [プライバシー設定] に想定されるメニュー項目
チェックポイント#2 - アプリが許可リストに登録されていることを確認する
[設定] > [環境設定] > [プライバシー設定] > [アプリによる共有を管理] > [Manage by App]の順にクリックして、アプリが許可リストに登録されていることを確認します。アプリが登録されていない場合は、次の手順を実行します。
  1. アプリがデバイスにインストールされていることを確認します。このリストには、インストールされているアプリのみが表示されます。
  2. [Amazonコンテンツを同期] をクリックし、15分ほど待ってからもう一度リストを確認します。
  3. それでもアプリがリストに表示されない場合は、Amazonの担当者に連絡し、開発に使用しているCustomerID、DSN、パッケージ名をお知らせください。
アプリは [設定] > [環境設定] > [プライバシー設定] > [アプリによる共有を管理] > [Manage By App]の下のリストに表示されます。
チェックポイント#3 - 機能がオンになっていることを確認する
アプリが許可リストに登録されていることを確認したら、機能が有効になっていることを確認します。そのためには、[設定] > [環境設定] > [プライバシー設定] > [アプリによる共有を管理]の順にクリックし、[アプリの視聴状況とコンテンツ情報の共有] 機能を [オン] に設定します。
[アプリの視聴状況とコンテンツ情報の共有][オン] に設定する必要があります。
それでもアプリが見つからない
次の条件をすべて満たしていることを確認してください。
  • サポート対象のデバイスを使用していて、最新のアップデートがすべてインストールされている。
  • Fire TV統合SDKについて - 手順4までが完了している。
  • チェックポイント#3で、機能の有効化とアプリの許可リストへの登録を確認した。
  • カタログファイルに指定されているCDF IDを使用していることを確認した。

それでも [続きを観る] 行にコンテンツが表示されない場合は、Amazonの担当者に問題を報告してください。

Fire TVシステムでデータ統合サービスが呼び出されない

この機能はまだ有効になっていませんが、統合の一部として実装する必要があります。実装はAmazonの内部で検証されます。

Fire TV統合SDKの機能チェックでtrueが返されても、デバイスで [続きを観る] 行が表示されない

デバイスによっては、SDKライブラリを読み込むことはできても、続きを観るエクスペリエンスがまだ完全にはサポートされていない場合があります。機能チェックはライブラリが利用可能かどうかを示すだけで、機能が利用できることを保証するものではありません。これらのデバイスは将来サポートされる可能性があるため、引き続きデバイスでFire TV統合SDKの呼び出しを行うことをお勧めします。現在続きを観る機能がサポートされているデバイスのリストは、Amazonの担当者から入手できます。

[続きを観る] 行が想定どおりに動作しない

トラブルシューティングを参照してください。

バックグラウンドプロセスが終了するシナリオの処理

フォアグラウンドプロセスにメモリが必要な場合、Android OSはほかのプロセスを停止してメモリを解放します。ただし、アクティビティの履歴はアクティビティスタックに残ります。アクティビティを再開する際は、プロセスが停止する前の元の起動インテントを使用して起動されます。2つ目の最新のインテントは、onNewIntent()コールバックを使用して次に実行されます。

バックグラウンドに関する情報

Androidのプロセスフロー

プロセスフローを知っておくと、OSがプロセスとインテントをどのように使用するかを理解しやすくなります。

  1. 3Pアプリ(アクティビティA)はディープリンクインテント(インテントA)で起動されます。
  2. ActivityA.onCreate()が呼び出され、getIntent()がインテントAを生成します。
  3. アクティビティAがバックグラウンドに移動し、ユーザーはほかのアプリや機能を使用できるようになります。
  4. Androidのローメモリキラーデーモン(lmkd)がアクティビティAを停止し、メモリを解放します。
  5. ActivityA.onDestroy()が呼び出され、アクティビティAのプロセスが停止します。

  6. アクティビティAは、後で別のユースケースや異なるインテント(インテントB)で起動されます。
  7. ActivityA.onCreate()が呼び出されますが、getIntent()は引き続きインテントAを生成します。
    1. singleTopsingleTasksingleInstanceなどの非標準起動モードを使用する場合、Android OSはタスクにアクティビティが既に存在するかどうかを確認し、onNewIntent()コールバックを使用してインテントのルーティングを試行します。
    2. 標準起動モードでは、ターゲットタスクの新しいインスタンスを作成し、その新しいインスタンスにインテントを配信する必要があります。
  8. 次にActivityA.onNewIntent()が呼び出され、インテントBがコールバックのインテントとして使用されます。
複数のインスタンスにわたる状態の保存

Android OSによってプロセスがバックグラウンドで終了すると、システムは最初にonSaveInstanceState(Bundle)を呼び出して、アクティビティが状態に関する情報をインスタンスの状態バンドルに保存できるようにします。次回アクティビティを起動する際、onCreate()には、保存されたインスタンスバンドルを元に、Android OSが終了した後に再開されたプロセスか、新しく開始されたアクティビティかが示されます。

メモリを解放する場合、アクティビティは終了しませんが、アクティビティが実行しているプロセスは停止します。アクティビティを再作成すると、保存されたインスタンスをバンドルから復元できます。

詳細については、以下を参照してください。

ディープリンクが機能しない場合は、最新のインテントではなく以前のインテントが選択されていることが原因かもしれません。この問題を解決するには2つの方法があります。

オプション1

最初の方法では、アプリから受け取った最新のインテントを使用します。ディープリンクに正しい情報が表示されない場合、最新のインテントを使用していないことが原因かもしれません。最新のインテントを除くすべてのインテントは、システムによって破棄または無視されます。

詳細については、onNewIntent()を参照してください。

オプション2

2つ目の方法では、専用のアクティビティを使用してディープリンクの受信と転送を行います。この方法の利点は、ディープリンクの処理後にアクティビティがfinish()を呼び出して、アクティビティ履歴から削除できることです。次回起動時に、onCreate()などのライフサイクルコールバックからgetIntent()を使用すると、アクティビティに最新のインテントが含まれます。その結果、システムはonNewIntent()コールバックを待つ必要がなくなります。


Last updated: 2024年10月25日