美文网首页
【Android Studio 踩坑日记】导入android-g

【Android Studio 踩坑日记】导入android-g

作者: 小马要加油 | 来源:发表于2020-01-08 14:08 被阅读0次

    引入

    问题是这样,我需要用到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

    image.png

    在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中也添加目录的声明。 就酱~,填坑完毕

    相关文章

      网友评论

          本文标题:【Android Studio 踩坑日记】导入android-g

          本文链接:https://www.haomeiwen.com/subject/xjgjactx.html