Android 选择图片、上传图片之PictureSelector

原作者地址: https://blog.csdn.net/yechaoa/article/details/79291552

 

集成自己项目时会出现如下的问题,特此做下总结。

1.添加依赖

implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.1.0'

 

这里会出现如下问题:

解决方法:

在project的build。gradle中allprojects添加:maven { url 'https://jitpack.io' }

如下:

 

2.清单文件中权限配置及provider配置

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permission android:name="android.permission.CAMERA"/>

 

 

<provider

android:name="android.support.v4.content.FileProvider"

android:authorities="com.example.zb.mypictureselectdemo.provider"

android:exported="false"

android:grantUriPermissions="true">

<meta-data

android:name="android.support.FILE_PROVIDER_PATHS"

android:resource="@xml/file_paths"/>

</provider>

 

如图:

 

这里会出现如下问题:

 

 

解决方法:

android:authorities="自己项目包名.provider"    即可。

 

 

3.进入相册,选择图片崩死

会出现 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelper;

分析:凡是出现android/support/v4/中找不到类或者方法,可以确定是依赖了多个不同版本的support库

这里是recycleview包冲突;

解决方法:

在app的build。gradle中添加

configurations.all {

resolutionStrategy.eachDependency { DependencyResolveDetails details ->

def requested = details.requested

if (requested.group == 'com.android.support') {

if (!requested.name.startsWith("multidex")) {

details.useVersion '26.1.0'

}

}

}

}

 

如下:

 

 

4.在fragment中:

将这个放置在Fragment里,添加照片后不会显示图片

PictureSelector.create();调用此方法时,在activity中传activity.this,在fragment中请传fragment.this, 影响回调到哪个地方的onActivityResult()。

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值