OEM は、可能な限り早く car-ui-lib-plugin-apis
の最新バージョン(1.2.0 以降)に切り替えることが求められます。以前のバージョンを使用するプラグインを搭載しないことが推奨されます。
この更新の理由
Java 8 以降の API は、Java 8 以降の API の脱糖サポートにより以前のバージョンの Android でサポートされます。不足している API の実装がアプリにコンパイルされ、APK のバイトコードが、プラットフォームのライブラリではなく、この実装を参照するよう書き換えられています。
Car UI ライブラリ プラグインから UI コンポーネントの OEM 実装を読み込むには、car-ui-lib-plugin-apis
インターフェースで定義されるメソッドの参照が必要です。これらのメソッド参照は、メソッドの署名がアプリとプラグインの実装で同一であることを前提として、ランタイムでアプリから Car UI ライブラリ プラグインに対して行われます。
一部のビルドシステムでは、特定の最小 SDK レベルの要件のため、いつでも API の脱糖が可能です。car-ui-lib-plugin-apis
インターフェースの脱糖済みメソッドの署名は、脱糖されていない OEM プラグイン実装内のものと一致しないことがあり、この場合、プラグインは読み込まれません。
その結果、内部の Google ビルドシステムでコンパイルされた一部の GAS アプリは、Car UI ライブラリ プラグインと互換性がありません。このため、脱糖を必要とする Java 8(以降)の API へのすべての依存関係を削除しました。この変更により、car-ui-lib-plugin-apis
で定義されているインターフェースの API の更新が必要となります。
OEM プラグインに必要な手順
API を更新する手順は次のとおりです。
最新バージョンの
car-ui-lib-plugin-apis
を使用するようプラグインの実装を更新します。最新バージョン(1.2.0 以上)を入手するには、Google の Maven リポジトリをご覧ください。PluginFactoryOEMV4
インターフェースを実装するようプラグインの実装を更新します。OEM プラグインによりコンポーネントが実装される場合は、以下の手順が必要です。以下の OEM 実装を更新します。ToolbarControllerOEMV2
を実装するよう、ツールバーの OEM 実装を更新します。ContentListItemOEMV2
を拡張するよう、コンテンツ リスト項目の OEM 実装を更新します。ImeSearchInterfaceOEMV2
を拡張するよう、IME 検索結果処理の OEM 実装を更新します。
最新バージョンの Car UI ライブラリを使用するようアプリを更新します。
この更新を適用しなかった場合
OEM プラグインに対し上記の手順を行わなかった場合、Google Automotive Services(GAS)など、脱糖済みのアプリは、Car UI ライブラリ プラグインの実装を読み込めず、プラグイン メカニズムで OEM のカスタマイズは適用されません。
Car UI ライブラリの既存の RRO のカスタマイズは、この問題の影響を受けず、通常どおり引き続き実行されます。