引入
问题是这样,我需要用到gif,Android是不支持gif播放的
多才多艺的网络上有很多开源的第三方支持库,比如说这个android-gif-drawable
源码路径:
https://github.com/koral--/android-gif-drawable,在github 目前有8k个star了,应该是目前最好用的git插件。
导入,还是老操作
compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'
一编译,跪了
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':XXX:transformClassesWithDexForDebug'.
Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: Unable to pre-dex
原因是我们项目中导入的jar包和这里面的内容有冲突,鱼和熊掌不可兼得啊 ,由于前面的jar不好修改,只能放弃这个方法了。
于是我就想把这个jar包下载下来,之间导入我们需要的东西即可呀。
其实下载的不是jar包,而是aar。
我在https://www.kumapai.com/open/942-android-gif-drawable/1-2-15#tabs4这里下载了aar。,按照操作导入aar
在gradle里面添加依赖
repositories{
flatDir{
dirs 'libs'
}
}
dependencies {
compile (name: 'android-gif-drawable-1.2.15', ext: 'aar')
}
结果编译的时候还是报错了,和刚刚的错误不一样,是说
image.png
难受 ,这个模块没有识别到这个aar。
经过一番折腾后,灵机一事,把这个aar的引用再次声明一次就好了
repositories {
flatDir {
dirs project(':XXX').file('libs')
}
}
情况是这样,这边涉及两个modle ,modelA添加了gif的依赖,将aar放入自己模块目录的libs下,modelB依赖了modelA,b需要用到gif时是加载不了的,需要在B的gradle中也添加目录的声明。 就酱~,填坑完毕
网友评论