yandex-ads-sdk-android icon indicating copy to clipboard operation
yandex-ads-sdk-android copied to clipboard

SDK v 7.0.0 конфликтует с внутренним FileProvider

Open kastwsw opened this issue 10 months ago • 2 comments

Мигрируем с SDK 6 на SDK 7

implementation 'com.yandex.android:mobileads:7.0.0'

Компилятор Студии выдаёт конфликт совмещения манифестов (Manifest merger failed). С SDK 6 такого нет.

Error: Attribute provider#androidx.core.content.FileProvider@authorities value=(applicationId.fileprovider) from (unknown) is also present at [com.yandex.android:mobileads:7.0.0] AndroidManifest.xml:32:13-91 value=(applicationId.monetization.ads.inspector.fileprovider). Suggestion: add 'tools:replace="android:authorities"' to <provider> element at AndroidManifest.xml to override.

Error: Attribute meta-data#android.support.FILE_PROVIDER_PATHS@resource value=(@xml/provider_paths) from (unknown) is also present at [com.yandex.android:mobileads:7.0.0] AndroidManifest.xml:37:17-51 value=(@xml/file_paths). Suggestion: add 'tools:replace="android:resource"' to <meta-data> element at AndroidManifest.xml to override.

В манифесте нашего приложения уже используется androidx.core.content.FileProvider

<provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" /> </provider>

Как правильно разрулить этот конфликт, чтобы не нарушить идею заложенную в вашем SDK?

kastwsw avatar Apr 08 '24 16:04 kastwsw

Здравствуйте! Благодарим за Ваше обращение! Мы исправим эту проблему в ближайшем релизе.

В качестве быстрого решения проблемы, мы можем предложить вам создать собственный FileProvider, отнаследовавшись от androidx.core.content.FileProvider:

package your.package.name

import androidx.core.content.FileProvider

class CustomFileProvider: FileProvider()

и указать имя этого класса при объявлении <provider> в AndroidManifest.xml в качестве значения атрибута android:name:

<provider
    android:name=".CustomFileProvider"
    android:authorities="${applicationId}.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/provider_paths" />
</provider>

mobile-ads-github avatar Apr 08 '24 17:04 mobile-ads-github

Спасибо за Ваше обращение, для разбора создана задача с номером PCODESUP-3120. Мы ознакомимся и вернемся с ответом в течение 2 дней, возможно запросим дополнительную информацию.

Thank you for your message, a task with the number PCODESUP-3120 has been created for analysis. We will get acquainted and return with the answer within 2 days, we may request additional information.

mobile-ads-github avatar Apr 08 '24 21:04 mobile-ads-github

Ровно месяц ждем "ближайший релиз" с исправлением данной ошибки

vellrya avatar May 08 '24 13:05 vellrya

Ровно месяц ждем "ближайший релиз" с исправлением данной ошибки

Вроде в 7.0.1 исправили.

У нас собралось без проблем.

kastwsw avatar May 08 '24 13:05 kastwsw

И правда, почему-то считал, что пробовал на 7.0.1 несколько недель назад и не компилировалось. Сейчас сборка прошла успешно, спасибо за уточнение)

vellrya avatar May 08 '24 14:05 vellrya

Добрый день! Проблему пофиксили в 7.0.1.

mobile-ads-github avatar Jul 16 '24 13:07 mobile-ads-github