Android: Manifest merger failed with multiple errors, see logs

问题 :在 Android7.0系统使用Intent跳转到APK安装时候遇到的错误

了解:Android7.0 系统权限更改

为了提高私有文件的安全性,面向 Android 7.0 或更高版本的应用私有目录被限制访问 (0700)。此设置可防止私有文件的元数据泄漏,如它们的大小或存在性。此权限更改有多重副作用:

私有文件的文件权限不应再由所有者放宽,为使用 MODE_WORLD_READABLE

和/或 MODE_WORLD_WRITEABLE而进行的此类尝试将触发 SecurityException

传递软件包网域外的 file:// URI 可能给接收器留下无法访问的路径。因此,尝试传递 file://URI 会触发 FileUriExposedException。分享私有文件内容的推荐方法是使用 FileProvider

DownloadManager不再按文件名分享私人存储的文件。旧版应用在访问 COLUMN_LOCAL_FILENAME时可能出现无法访问的路径。面向 Android 7.0 或更高版本的应用在尝试访问 COLUMN_LOCAL_FILENAME时会触发 SecurityException。通过使用 [DownloadManager.Request.setDestinationInExternalFilesDir()](https://developer.android.google.cn/reference/android/app/DownloadManager.Request.html#setDestinationInExternalFilesDir(android.content.Context, java.lang.String, java.lang.String)或 [DownloadManager.Request.setDestinationInExternalPublicDir()](https://developer.android.google.cn/reference/android/app/DownloadManager.Request.html#setDestinationInExternalPublicDir(java.lang.String, java.lang.String))将下载位置设置为公共位置的旧版应用仍可以访问 COLUMN_LOCAL_FILENAME中的路径,但是我们强烈反对使用这种方法。对于由 DownloadManager公开的文件,首选的访问方式是使用[ContentResolver.openFileDescriptor()](https://developer.android.google.cn/reference/android/content/ContentResolver.html#openFileDescriptor(android.net.Uri, java.lang.String))。

如果7.0之前intent跳转

Intent i =new Intent(Intent.ACTION_VIEW);

i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

i.setDataAndType(Uri.parse("file://" + file.toString()), "application/vnd.android.package-archive");

startActivity(i);

android 7.0之后可以参考  https://blog.csdn.net/qq_30548105/article/details/79551068

 最重要的来了,我们运行遇到的Manifest merger failed with multiple errors, see logs问题

我们在项目中有很多依赖 出现这个错 是因为我们的lib库的provider冲突

解决办法

之前我们清单文件里FileProvider配置是这么写的

FileProvider

怎么解决呢 

我们需要自己创建一个类  MyFileProvider 继承  FileProvider

FileProvider

然后在清单文件里 修改配置

FileProvi  der

重新编译一下  这样问题就解决了 ,你的问题解决没?

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容