Я пытаюсь внедрить новый Android Photo Picker, но столкнулся с проблемой при попытке настроить автоматическую установку бэкпортированного модуля для выбора фотографий на старых устройствах.
Согласно документации нам нужно добавить следующее в файл манифеста нашего приложения, чтобы разрешить это:
<!-- Trigger Google Play services to install the backported photo picker module -->
<service android:name = "com.google.android.gms.metadata.ModuleDependencies"
android:enabled = "false"
android:exported = "false">
<intent-filter>
<action android:name = "com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
</intent-filter>
<meta-data android:name = "photopicker_activity:0:required" android:value = "" />
</service>
Однако, когда я это делаю, я получаю сообщение об ошибке в Android Studio о том, что «com.google.android.gms.metadata.ModuleDependencies» не распознается или не разрешается.
Как мы можем это исправить?
Кажется, кто-то зарегистрировал проблему: отследите ее здесь: issuetracker.google.com/issues/279636992
Я попытался добавить com.google.android.gms:play-services-home:16.0.0-beta1, он также не включает com.google.android.gms.metadata.ModuleDependencies.
есть такая же проблема, есть обходные пути? есть ли обновленная ссылка на трекер проблем для этого?
Вроде бы это решается добавлением следующего атрибута: tools:ignore = "MissingClass" в узел XML с классом ModuleDependencies. Обновлена документация: https://developer.android.com/training/data-storage/shared/photopicker#device-availability
Добавление tools:ignore = "MissingClass" ничего не делает для меня. Я все еще вижу Unresolved package 'gms', Unresolved package 'metadata' и Unresolved class 'ModuleDependencies'
Это просто ошибка IDE, верно? Это потому, что класс не существует. Однако он компилируется.
Мы всегда могли скомпилировать с ошибкой IDE. Добавление этого атрибута ничего не делает
Документы были неправильными, как сообщалось в этой проблеме.
Рекомендуется добавить атрибут tools:ignore = "MissingClass"
а также подавить AndroidDomInspection:
<!--
Prompt Google Play services to install the backported photo picker module
https://developer.android.com/training/data-storage/shared/photopicker#device-availability
-->
<!--suppress AndroidDomInspection -->
<service android:name = "com.google.android.gms.metadata.ModuleDependencies"
android:enabled = "false"
android:exported = "false"
tools:ignore = "MissingClass">
<intent-filter>
<action android:name = "com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
</intent-filter>
<meta-data android:name = "photopicker_activity:0:required" android:value = "" />
</service>
Если ничего другого, вы можете попробовать добавить зависимость от
com.google.android.gms:play-services-homeверсии16.0.0-beta1или выше. Документы Google для интеграции Matter показывают такой же элементcom.google.android.gms.metadata.MODULE_DEPENDENCIES<service>. Если это сработает, вы сможете определить конкретную зависимость, содержащую класс.