代码之家  ›  专栏  ›  技术社区  ›  user3290180

Gradle 3,如何使库对Android Studio 3中的其他模块可见?

  •  0
  • user3290180  · 技术社区  · 8 年前

    这些是项目1中名为“mylibrary1”的库模块的依赖项

    dependencies {
      implementation fileTree(dir: 'libs', include: ['*.jar'])
      api 'com.android.volley:volley:1.0.0'
      ...
    }
    

    这里的关键字api是为了将这种依赖关系传递给我自己的库的使用者(我使用的是Gradle 3)。一切都很顺利。aar文件已生成。

    然后,让我们转到另一个项目2,它是库的使用者。单击“文件”>新建模块(>);进口jar/。aar并选择我之前创建的aar文件。

    我检查了设置是否正确。gradle包括新模块,然后以这种方式向使用者添加依赖项

    api project(':mylibrary1')
    

    同样,要重用来自另一个将使用项目2的aar的项目的代码,必须使用关键字api。无论如何,即使我使用关键字实现,它也不会改变。

    从项目2的课程中,我可以在mylibrary1中看到我所有的课程,除了Volley中的课程。

    我做错了什么?我该如何解决这个问题?

    1 回复  |  直到 8 年前
        1
  •  1
  •   John Leehey    8 年前

    当您打包AAR时,它将不包括可传递的依赖项,只包括您自己的代码。因此,您需要在项目2中添加一个截取依赖项。