原因:这个问题其实本质就是手机里已经安装有同名的Provider
的APK了;在app换皮开发出现了相同的Provider
,所以把AndroidManifest.xml
中定义的 Provider 此参数 android:authorities="${applicationId}.fileProvider012" 设置和applicationId关联,就不会出现上述包同名的问题;
解决方案 :
方式一、在cmd 使用 adb uninstall + 包名 (删除手机中此包)
方式二、修改 versionCode
方式三、 "com.XXX.fileProvider012" 修改为"${applicationId}.fileProvider012"
这种是避免多个程序的FileProvider的android:authorities名称重复,最好用包名作为此名称一部分,避免包冲突
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.XXX.fileProvider012"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileProvider012"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>