开发者社区 问答 正文

android studio中引入两个library的问题?报错

我在项目里引入两个第三方的类库,然后这两个库都依赖一个包,导致了冲突问题,然后现在删掉其中一个包,就有一个项目报错,找不到这个包了,然后要怎么解决这种情况,删掉一个后,这个的包怎么引用?不知道有没有表达清楚,求解决啊,纠结好久了

展开
收起
爱吃鱼的程序员 2020-06-10 11:18:54 775 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    假设项目引用了类库A和类库B,同时,这两个类库都依赖包C。

    1.如果A、B、C均为Maven依赖,可以直接使用,不会存在冲突问题。

    如果还是有问题,则在主项目可以去除A、B中的C。

    主项目:

    compile'a.group:a.artifactId:a.version'{excludegroup:'c.groupId',module:'c.artifactId'}compile'b.group:b.artifactId:b.version'{excludegroup:'c.groupId',module:'c.artifactId'}compile'c.groupId:c.artifactId:c.version'


    2.如果  A、B均为Maven依赖,C为jar依赖。则将C复制到主项目、A、B中,主项目compileC,A、B providedC。

    主项目:

    compilefiles('libs/C.jar') A、B项目: providedfiles('libs/xx.jar')


    3.如果   A、B均为LibraryProject依赖,C为jar依赖。同2。


    4.如果   A、B均为LibraryProject依赖,C为Maven依赖。同2或者1(Maven依赖也可以进行provided处理)。


    5.如果A为Maven  依赖或者LibraryProject依赖,B为jar依赖,C为jar依赖。

    A项目:

    providedfiles('libs/xx.jar')

    B项目和主项目,不做其他任何处理。


    6.如果A、B、C均为jar依赖,尝试重新将A、B打包,将C剥离出来。

    不告诉你哼哼,我已经解决了

    引用来自“monroe”的评论

    假设项目引用了类库A和类库B,同时,这两个类库都依赖包C。

    1.如果A、B、C均为Maven依赖,可以直接使用,不会存在冲突问题。

    如果还是有问题,则在主项目可以去除A、B中的C。

    主项目:

    compile'a.group:a.artifactId:a.version'{excludegroup:'c.groupId',module:'c.artifactId'}compile'b.group:b.artifactId:b.version'{excludegroup:'c.groupId',module:'c.artifactId'}compile'c.groupId:c.artifactId:c.version'


    2.如果  A、B均为Maven依赖,C为jar依赖。则将C复制到主项目、A、B中,主项目compileC,A、B providedC。

    主项目:

    compilefiles('libs/C.jar') A、B项目: providedfiles('libs/xx.jar')


    3.如果   A、B均为LibraryProject依赖,C为jar依赖。同2。


    4.如果   A、B均为LibraryProject依赖,C为Maven依赖。同2或者1(Maven依赖也可以进行provided处理)。


    5.如果A为Maven  依赖或者LibraryProject依赖,B为jar依赖,C为jar依赖。

    A项目:

    providedfiles('libs/xx.jar')

    B项目和主项目,不做其他任何处理。


    6.如果A、B、C均为jar依赖,尝试重新将A、B打包,将C剥离出来。

    2020-06-10 11:19:10
    赞同 展开评论