gradle 同一个工程下不同模块之间的类相互调用
时间: 2024-01-30 16:06:28 浏览: 30
在 Gradle 项目中,不同模块之间的类相互调用需要进行配置,具体步骤如下:
1. 在需要调用其他模块类的模块的 build.gradle 文件中,添加依赖配置,例如:
```
dependencies {
implementation project(":module_name")
}
```
其中,`:module_name` 是需要调用的模块名称。
2. 在需要被调用的模块的 build.gradle 文件中,添加导出配置,例如:
```
android {
// ...
defaultConfig {
// ...
javaCompileOptions {
annotationProcessorOptions {
arguments = [moduleName: project.getName()]
}
}
}
}
// 导出该模块的所有类
artifacts {
archives file("build/outputs/aar/${project.getName()}-release.aar")
}
```
其中,`javaCompileOptions` 中的 `arguments` 配置是为了在被调用模块时可以获取到该模块的名称,`artifacts` 配置是为了将该模块打包成 AAR 包导出。
3. 在需要调用其他模块类的代码中,直接使用该模块的类即可,例如:
```
import com.example.module_name.ClassName;
public class MyClass {
private ClassName mClassName;
// ...
}
```
这样就可以在不同模块之间相互调用类了。需要注意的是,被调用模块必须先进行编译和打包,否则会出现找不到类的错误。