原作者地址: 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()。