Автоматическая установка бэкпортированной версии Android Photo Picker плохо работает с Android Studio

Я пытаюсь внедрить новый 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» не распознается или не разрешается.

Как мы можем это исправить?

Если ничего другого, вы можете попробовать добавить зависимость от com.google.android.gms:play-services-home версии 16.0.0-beta1 или выше. Документы Google для интеграции Matter показывают такой же элемент com.google.android.gms.metadata.MODULE_DEPENDENCIES<service>. Если это сработает, вы сможете определить конкретную зависимость, содержащую класс.

CommonsWare 16.04.2023 19:15

Кажется, кто-то зарегистрировал проблему: отследите ее здесь: issuetracker.google.com/issues/279636992

Jaydeep Devda 26.04.2023 09:29

Я попытался добавить com.google.android.gms:play-services-home:16.0.0-beta1, он также не включает com.google.android.gms.metadata.ModuleDependencies.

Andreas 07.05.2023 20:19

есть такая же проблема, есть обходные пути? есть ли обновленная ссылка на трекер проблем для этого?

KingKongCoder 18.05.2023 18:39
issuetracker.google.com/issues/280659181 похоже
ace1234 20.05.2023 07:43
17
5
714
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вроде бы это решается добавлением следующего атрибута: 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'

karlingen 22.05.2023 14:32

Это просто ошибка IDE, верно? Это потому, что класс не существует. Однако он компилируется.

Andreas 22.05.2023 15:59

Мы всегда могли скомпилировать с ошибкой IDE. Добавление этого атрибута ничего не делает

karlingen 23.05.2023 14:38
Ответ принят как подходящий

Документы были неправильными, как сообщалось в этой проблеме.

Рекомендуется добавить атрибут 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>

Другие вопросы по теме