如Provider在聲明android:authorities(該值必須唯一)時,如前綴為寫死的包名字符串轮蜕,當出現(xiàn)需要同一工程分包秆撮、分渠道打包時,安裝在同一android設備將導致 INSTALL FAILED CONFLICTING PROVIDER 的報錯(使用adb安裝會有提示)奴愉,這時可以使用${applicationId},這將避免android:authorities值非唯一的問題铁孵。
也可以用在Manifest中其他需要唯一的取值情況锭硼,這種使用方式很靈活。
<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/file_provider_paths" />
</provider>
解決方式:
android:authorities="${applicationId}.fileProvider"