Android provider冲突问题,ImagePick的provider与自己的provider冲突

 

首先描述一下我的问题

我这个是android7.0拍照,因为更换头像是自己条用系统的拍照,为了解决Android7.0权限,所以自己在xml中配置了provider,然后项目中有上传多张图片的功能,我是使用的是第三方框架com.lzy.widget:imagepicker,这个框架里面也配置了provider的权限,然后就发生了冲突。当选择多张图片的时候,使用拍照,Android 7.0就会闪退。

开始的时候,运行是正常的,什么错都没有,就是点击拍照就闪退

这个时候的我一脸懵逼,不存在啊,这个是使用的最新的版本啊,官方也说了7.0是可以的啦,好崩溃,然后我就换了一个0.3.5版本的clear项目,在重新builder,哈哈哈哈,这回就不能运行了,报错了。哎呀报错了好呀,这样才能看到报错的原因啊。下面是报错的详细信息Android provider冲突问题,ImagePick的provider与自己的provider冲突_第1张图片

 

然后配上我的xml配置

 



    

 

 

 

 

分析报错可以看到说的是provider这个标签里面的

android:authorities

 

这个的值是错的,imagepicker不是用的这个值,然后说要加上 tools:replace=“android:authorities”

还有一个地方就是meta-data标签下的这个resource值也不对,这个是用 @xml = "provier_paths"

 

 android:resource

根据报错信息,说是要加入

 

tools:replace=“android:authorities”

然后我按照报错的信息又加入相应的tools,然后重新运行项目,现在运行的试试不报错了,但是点击imagepick的拍照功能还是闪退。

然后网上搜索了一下,也没有解决这个问题,然后我吧版本换到最新的版本,然后下载官网的源码去看看源码里面怎么配置的。

下面是源码里面的provider配置的相关代码,

1.在AndroidMain里面

                    android:name=".ImagePickerProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
                            android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths"/>
       

2.@xml/provider_paths里面的东西



   

3.ImagePickerProvider中的代码

package com.lzy.imagepicker;
import android.support.v4.content.FileProvider;
/**
 * 自定义一个Provider,以免和引入的项目的provider冲突
 *
 * Author: nanchen
 * Email: [email protected]
 * Date: 2017-03-17  16:10
 */
public class ImagePickerProvider extends FileProvider {
}

 

 

然后我就尝试自己再按照源码的配置再配一次,出现这样问题是因为provider文件不能共享

下面我就直接贴代码了

 

1.自定义的MyProvider继承自

import com.lzy.imagepicker.ImagePickerProvider;

 

 

import com.lzy.imagepicker.ImagePickerProvider;

/**
 * C
 * 项目名称:¥{PROJECT_NAME}
 * 创建人:潇潇
 * 
 */

public class MyProvider extends ImagePickerProvider {
}

 

 

 

2.在res-value新建一个xml文件,然后创建provider_paths

 

 



  
    
    

 

 

 

 

3.在AndroidManifest中配置

 



    

 

 

 

O(∩_∩)O哈哈~,就这样完美解决了,如果对你有帮助,记得点赞哦,(づ ̄ 3 ̄)づ么么哒

 

 

 

 

你可能感兴趣的:(Android,开发记错本)