关键字:Android Unity FILE_PROVIDER_PATHS AndroidManifest.xml
出现此错误,一般是AndroidManifest.xml文件中对于FILE_PROVIDER_PATHS的使用冲突。
报错例子如下:
或者报错如下:
最常见的冲突是自定义的路径和第三方协议定义的路径冲突。
一般网上都是针对此错误的解决办法。例如:
https://blog.csdn.net/hylxnq/article/details/115345016
但是当两个第三方sdk的aar里面的文件冲突,
例如unity和第三方登录aar的冲突
没法修改其文件,解决办法如下:
自己在工程的AndroidManifest.xml下
的<application></application>
内增加
<provider
android:name="androidx.core.content.FileProvider"
android:exported="false"
tools:replace="android:authorities"
android:authorities="com.xxx.yyy.fileprovider"
android:grantUriPermissions="true">
<meta-data
tools:replace="android:resource"
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/path.xml" />
</provider>
在res/xml文件夹下创建path.xml文件
内容如下:
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path name="publicDir" path="." />
<external-files-path name="apk" path="." />
</paths>
其中两句路径分别来自原有arr的文件,publicDir来自Unity打包
apk路径来自第三方平台指定
此处通过查看aar内容,分别拿到两边的路径设计,并且合并到新的文件里
问题解决。