zoukankan      html  css  js  c++  java
  • android找不到aar包

    转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/9939663.html 

    更多查看:http://77blogs.com/?p=494

    在做项目的时候引入aar包,编译的时候却提示错误(这个错误大概说的是.......模块B>模块C......有点忘了),其实大概可以看出是由于多个模块重复依赖造成的,下面具体讲讲:
    主项目A引入模块B和C,模块B中也引入了模块C,而模块C中引入了aar包

    (aar包在libs文件中,具体怎么引入请看我另一篇博客:https://www.cnblogs.com/tangZH/p/9939494.html

    那么这时候就要注意了:

    1、我们需要在模块B中的build.gradle文件中的android标签下写上下面代码:

    repositories {
            flatDir {
    dirs
    'C的libs文件夹路径' } }

    假如模块C与模块B处于同一个目录下,那么模块C的libs文件的路径应该这样写../C/libs(关于相对路径这一块,可以看我另一篇博客https://www.cnblogs.com/tangZH/p/9939655.html 

    如果有其它模块的libs路径需要添加,那么就在后边用逗号隔开

    dirs 'C的libs文件路径','XX'

    2、由于A也引用了模块C,所以需要做相同的处理,因为编译的时候会去找aar包。

    在实际过程中发现编译已经没有问题了,但是A中无法调用aar包中的代码,最终发现:

    将C的build.gradle中的implementation (name: 'aar包名称', ext: 'aar')  改为:api (name: 'aar包名称', ext: 'aar')就可以了,因为implementation指的是本Module,但是api指的是整个项目,依赖的范围不同

    在这个过程中需要格外注意的是相对路径不要写错,否则会报找不到arr包的错误,如果还不行就clean一下工程

  • 相关阅读:
    内存对齐
    类和对象
    C++ 各种继承方式的类内存布局
    静态变量static
    程序内存布局
    String类
    C++与C的区别
    命名空间
    C
    D
  • 原文地址:https://www.cnblogs.com/tangZH/p/9939663.html
Copyright © 2011-2022 走看看