9

そのため、プロジェクトで Aviary SDK を長い間使用してきましたが、問題は発生していません。しかし、Aviary のバージョンを最新に更新したところ、いくつかの奇妙な動作が明らかになりました。古い Aviary バージョンのアプリのバージョンがインストールされているデバイスに、新しいバージョンの Aviary がバンドルされたアプリケーションを最初にインストールすると、例外が発生してアプリがクラッシュします。

FATAL EXCEPTION: IntentService[AviaryCdsService]
java.lang.IllegalStateException: Missing required api key secret

インストールされたアプリの 2 回目の実行は期待どおりに機能し、すべての機能が正常に機能しています。デバイスに以前にアプリがインストールされていない場合、クラッシュは発生せず、インストールは正常に実行されます。この動作は、com.aviary.android.feather.sdk:aviary-sdk:3.4.3.351からcom.aviary.android.feather.sdk:aviary-sdk:3.6.3に移行したときに明らかになりました。

他の誰かがそのような問題を抱えていましたか?このクラッシュを回避する方法はありますか?

4

4 に答える 4

2

アプリケーション クラスを作成し、以下のコードを onCreate() メソッドに配置します

インテント cdsIntent = AviaryIntent.createCdsInitIntent(getBaseContext(), API_SECRET, null); startService( cdsIntent );

于 2016-11-03T06:20:20.263 に答える
0

AviaryIntent.createCdsInitIntent同じ例外が発生していましたが、アクティビティ内で呼び出していたことが原因である可能性があります。この例外AviaryIntent.createCdsInitIntentへの呼び出しを移動すると、なくなりました。Application

于 2014-12-21T07:37:21.827 に答える
0

答えはドキュメントにあります。

4.1. Assets フォルダー アプリケーションの assets フォルダー内に「aviary」というフォルダーを作成します。その中に、「aviary.txt」というファイルを作成します。このファイルの 1 行目に API シークレットを入力し、2 行目に Google Play 請求の公開 API キーを入力します。このファイルは必ずしも必要ではありませんが、除外すると警告が表示されます。これは、アプリがアクティブでないときにコンテンツのダウンロードを最適化するために行われます。これを行う方法のテンプレートについては、サンプル アプリケーションの assets フォルダーを確認してください。

于 2015-04-20T03:51:48.957 に答える