由于在项目开发中引入了第三方sdk,依赖项目的provider和主项目的冲突报错,如下图:
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.kernal.passportreader.myapplication.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
Build项目时报错:
解决方案
自定义MyProvider继承FileProvider
主项目provider改成自定义
调用的地方也进行相应的修改
扩展
provider_path.xml:
-
root-path:表示根目录,『/』。
-
files-path:表示 content.getFileDir() 获取到的目录。
-
cache-path:表示 content.getCacheDir() 获取到的目录
-
external-path:表示Environment.getExternalStorageDirectory() 指向的目录。
-
external-files-path:表示 ContextCompat.getExternalFilesDirs() 获取到的目录。
-
external-cache-path:表示 ContextCompat.getExternalCacheDirs() 获取到的目录。
项目依赖库和主程序的allowBackup冲突
Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xml
如图:
切记哪个依赖项目报这个错就在哪个依赖项目的manifest文件中进行设置而不是在主项目中进行修改