Слияние манифеста библиотеки (два контент провайдера)

Делаю библиотеку, внутри которого нужно иметь провайдер. Но если в манифесте проекта к которому подключается библиотека уже есть свой провайдер, то происходит ошибка при компиляции.

Как можно объединить оба провайдера в итоговый манифест? Но так чтобы authorities не менялись (все оставалось как есть)

Манифест основного приложения (это как пример, да деле может быть что угодно)

<application
    android:name=".App"
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:usesCleartextTraffic="true"
    android:theme="@style/Theme.MyApplication">
    //...
    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}.appFileProvider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/filepaths" />
    </provider>
</application>

Манифест библиотеки

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

Итоговый манифест должен быть таким:

<application
    android:name=".App"
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:usesCleartextTraffic="true"
    android:theme="@style/Theme.MyApplication">
    //...
    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}.appFileProvider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/filepaths" />
    </provider>

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

Такая ошибка при компиляции:

/Users/nameny/AndroidStudioProjects/MyApplication2/app/src/main/AndroidManifest.xml:23:13-67 Error: Attribute provider#androidx.core.content.FileProvider@authorities value=(ru.mydomain.myapplication.appFileProvider) from AndroidManifest.xml:23:13-67 is also present at [:mylibrary] AndroidManifest.xml:12:13-67 value=(ru.mydomain.myapplication.libFileProvider). Suggestion: add 'tools:replace="android:authorities"' to element at AndroidManifest.xml:21:9-29:20 to override. /Users/nameny/AndroidStudioProjects/MyApplication2/app/src/main/AndroidManifest.xml:28:17-50 Error: Attribute meta-data#android.support.FILE_PROVIDER_PATHS@resource value=(@xml/filepaths) from AndroidManifest.xml:28:17-50 is also present at [:mylibrary] AndroidManifest.xml:17:17-49 value=(@xml/libpaths). Suggestion: add 'tools:replace="android:resource"' to element at AndroidManifest.xml:26:13-28:53 to override.


Ответы (0 шт):