项目中多版本Gilde(3.7.0与4.0.0),使用Glide3.7.0加载网络Gif图,在6.0系统上报异常导致程序crash。
问题一:框架内的依赖了不同版本的Gilde
这是其他人的总结,拿来主义了。
在引入了glide 3.7版本后,在使用过程中却发现无法正常使用链式语法设置placeholder和error等,于是我打开项目.idea-->libiraries,发现目录下glide的版本是4.0,很明显,有别的框架依赖了4.0
正是这个4.0版本的存在让我设置的3.7依赖无效,那么如果我还想用3.7的话就要去除这个4.0。这样感觉不是很合适,因为这个图片框架有可能用到了4.0的新特性,使用3.7的话可能会出问题。这里只是演示一下怎么去除框架内的依赖:
把gradle里的依赖改成这个就可以了:
compile ('com.github.LuckSiege.PictureSelector:picture_library:v2.1.0'){
exclude group: 'com.github.bumptech.glide'
}
和我遇到的问题一模一样,引入到框架版本都一模一样。
问题二:Error:Failed to resolve: com.github.LuckSiege.PictureSelector:picture_library:v2.1.0
解决方案: 在根级 build.gradle 文件中增加maven { url 'https://jitpack.io' }
allprojects {
repositories {
jcenter()
//在这里,在这里
maven { url 'https://jitpack.io' }
// retroLambda相关
mavenCentral()
}
}
使用注解框架butterknife,空指针
项目中的所有依赖都放在了某个模块 Gradle 文件中。
dependencies {
//注解框架ButterKnife是JakeWharton大神开发的一个开源库
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
解决方案: annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'这句一定要放在app模块 Gradle 文件中。
dependencies {
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
网友评论