2022 年 11 月、Google Play 開発者サービス(AR)で、NDK カメラの画像とメタデータに関連する非推奨のメソッドが削除されます。
影響を受ける ARCore SDK のバージョンでこれらのメソッドを使用しているアプリは、ユーザーが AR 用 Google Play 開発者サービスを更新すると、動作が変わったりクラッシュしたりする可能性があります。
影響を受けるアプリ
2022 年 11 月以降、ユーザーが Google Play 開発者サービス(AR)を最新バージョンにアップデートすると、以下の場合にアプリが動作しなくなったりクラッシュしたりすることがあります。
- お客様のアプリは該当する SDK でコンパイルされました
- お客様のアプリは、影響を受ける次の API のいずれかを使用しています。
アプリが ARCore SDK バージョン でコンパイルされた場合... |
影響を受ける API を使用 | 2022 年 11 月から適用される互換性を破る動作 |
---|---|---|
1.22.0 以下 | ArImage_getNdkImage() (ARCore SDK 1.23.0 で削除) |
結果の AImage 構造体で NULL を返します。 |
1.22.0 以下 | ArImage_getNdkCameraMetadata() (ARCore SDK 1.23.0 で削除) |
結果の ACameraMetadata 構造体で NULL を返します。 |
影響を受けているアプリを修正する
影響を受けるアプリは、2022 年 11 月に動作しなくなる可能性があります。これを軽減するには、影響を受けるメソッドをドロップイン代替として使用してください。
ArImage_getNdkImage()
メソッドとAImage_*
メソッド:ArImage
の対応するメソッドを使用します。次に例を示します。ArImage_getNdkCameraMetadata()
: 代わりにArImageMetadata_getConstEntry()
を使用します。
影響を受けているアプリが修正済みであることを確認する
特別な meta-data
エントリをアプリの AndroidManifest.xml
に追加して、2022 年 11 月の変更を事前にシミュレートして、アプリをテストします。
- 対象デバイスに Play 開発者サービス(AR)バージョン 1.29.0 以降がインストールされていることを確認します。
アプリの
AndroidManifest.xml
ファイルに、既存の<application>
要素の子として新しい<meta-data>
タグを追加します。<application …> … <!-- Simulate the November 2022 changes in advance. IMPORTANT: Remove this tag when testing is completed. Do not include this tag in published versions of your app. --> <meta-data android:name="com.google.ar.core.session_settings" android:value="camera_stack_option,unified_mono" /> </application>
アプリをテストして、ARCore のすべての機能が想定どおりに動作することを確認します。
テストが完了したら
<meta-data>
タグを削除します。公開中のアプリにこのタグを配置したままにしておくと、今後、予期しない動作が発生する可能性があります。
アプリが正常に動作する場合は、2022 年 11 月の変更に対する準備が整います。
タイムライン
周期 | イベント |
---|---|
2020 年 11 月 (ARCore SDK バージョン 1.20.0) |
影響を受ける API のサポートを終了し、ドロップイン API の代替手段を導入します。 |
2021 年 2 月 (ARCore SDK バージョン 1.23.0) |
以前に非推奨になった API の署名を ARCore SDK から削除します。 |
2021 年 11 月 | 影響を受ける API の実装を 2022 年 11 月に AR 用 Google Play 開発者サービスから保留削除することによる、今後の互換性を破る変更を発表します。 |
2022 年 11 月 |
AR 用 Google Play 開発者サービスから影響を受ける API の実装を削除します。 1.23.0 より前のバージョンの ARCore を使用するアプリに対して、互換性を破る変更を導入しました。 |