症状
2018年5月初旬より、Huawei製Android端末において、Google Play Services Vision の機能が使用できなくなる不具合が発生しています。
このため、今まで正常に動作していたバーコード読取や顔認証が突然反応しなくなる現象が起きています。
コード的には、BarcodeDetector のインスタンス作成後、isOperational が終始 false を返し、true になりません。
この時、下記エラーが繰り返し出力されます。
W/DynamiteModule(19073): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
I/DynamiteModule(19073): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1702
I/DynamiteModule(19073): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1702
I/Vision (19073): Loading library libbarhopper.so
I/Vision (19073): libbarhopper.so library load status: false
影響範囲
- Huawei製 Android端末(主に7.0)
- GooglePlayServices.Vision を使用したバーコード/QRコード読取、OCR、顔認証
※上記条件に該当すれば、Xamarinでも発生します。
原因・対策
現時点では原因は不明で、根本的な解決策は見つかっていません。
Google Play Services あるいは Huawei側の対応を待つしかない状況です。
因みに、端末で Google Play Services のキャッシュをクリアする等で一時的に解消するケースがありますが再起動で元に戻ってしまうようです。
詳細情報
Google「Issue Tracker」や GitHub の「Android Vision API Samples」に、本件に関する多数の障害情報が投稿されています。上記内容はこれらの情報に基づいています。
[So, no QR reader, no Ocr Detector, no face recognition on Huawei...]
(https://issuetracker.google.com/issues/80454351)
Does not read the QR on Huawei devices
isOperational() returns false after a reboot
Library delays or fails on download