模块的Android Studio依赖项在其他模块中不可见

模块的Android Studio依赖项在其他模块中不可见,android,android-studio,Android,Android Studio,我有一个名为“Common”的模块作为库,这个模块几乎没有依赖项,比如:com.badlogicames.gdx,com.squareup.wire等。它工作正常,我在这个模块内部使用它们 我还有另一个模块叫做“跟踪”,在gradle中我有: dependencies { compile project(':Common') } 如果我尝试在那里导入模块“Common”的任何公共类,它工作正常,但是如果我尝试导入库com.badlogicgames.gdx或com.squareup.wir

我有一个名为“Common”的模块作为库,这个模块几乎没有依赖项,比如:
com.badlogicames.gdx
com.squareup.wire
等。它工作正常,我在这个模块内部使用它们

我还有另一个模块叫做“跟踪”,在gradle中我有:

dependencies {
  compile project(':Common')
}
如果我尝试在那里导入模块“Common”的任何公共类,它工作正常,但是如果我尝试导入库
com.badlogicgames.gdx
com.squareup.wire
的任何类,它会说我“无法解析符号…”,并将其高亮显示为红色。这样的类没有代码自动完成

但是,项目在设备上编译和启动时没有错误


有人知道吗?我尝试了项目的“清理和重建”,Android Studio的“作废现金并重新启动”。没有任何帮助。

在模块
common
中,您需要将这些可传递依赖项声明为
api
,以将它们公开给其他模块:

e、 g.通用/构建.gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    api 'com.squareup.wire'
}

解决方案

将编译更改为api

dependencies {
  api project(':Common')
}
原因

由于compile已被弃用,因此它被视为实现。 FYIcompileapi(compile的新关键字)是相同的,所有内部模块都可见。 但是具有编译关键字的新gradle项目被视为实现。在实现中内部模块对主项目不可见

建议


您应该在gradle中声明依赖关系,因为泄漏内部模块是不好的。

您可以参考@basavarajganagi我的项目结构正常,所有模块及其依赖项都存在。我使用旧的gradle版本
distributionUrl=../../../../androidGradleDistribution/gradle-3.3-all.zip
其他模块用于声明
squareup.wire
的关键字是什么?
编译'com.squareup.wire:wire runtime:2.1.0'
您也必须向项目声明此依赖项,也许这就是AAR,它不包含嵌套的依赖项。这意味着我将在项目中拥有相同的库两次,并且项目的大小将增加。奇怪的是,它在过去是有效的,但最近几天我遇到了这个问题。