Android开发引用本地module的小技巧
Android开发中,如何引用本地module?
? 在 Android
项目中,如果你想要引入一个本地的 module
作为依赖,你需要确保该 module
已经在你的项目结构中定义,然后在你的主 module
的 build.gradle
文件中使用 implementation
关键字加上 project
引用来声明该依赖。
? 以下是将名为 :mylibrary
的本地 module
引入一个 module
(通常是 app
module
) 的 build.gradle
文件的示例代码:
// 在 app 的 build.gradle 中
dependencies {
// ... 其他依赖 ...
// 引入你项目中的一个本地 module(例如一个叫做 'mylibrary' 的 library module)
implementation project(':mylibrary')
}
? 确认 module
的名字与你在 settings.gradle
文件中声明的一致:
// 在 settings.gradle 文件中
include ':app', ':mylibrary'
// ... 其他 module ...
? 这里 :app
是你的主应用 module
,:mylibrary
是你要引入的本地 library module
。include
关键字告诉 Gradle
包含哪些 module
进行构建。
? 确保做了以上配置后,你的项目结构应该是这样的:
YourProject/
├── app/
│ └── build.gradle
├── mylibrary/
│ └── build.gradle
└── settings.gradle
? 在上述目录结构中,app
是主要的应用 module
,而 mylibrary
是你希望作为依赖引入的本地 module
。它们都有各自的 build.gradle
配置文件。同时,settings.gradle
文件在项目的根目录下,定义了哪些 module
是工程的一部分。
如果要引用的本地module不是当前项目中的module,而是和当前项目在同一上层目录的module,该怎么办?
? 如果你要引入的模块并不是当前项目的一部分,而是位于与当前项目相同的父目录中,你需要采取一些不同的步骤来正确地引用它。首先,你需要在 settings.gradle
(或者在 Gradle 6.5
以后版本中称为 settings.gradle.kts
)文件中正确地包括你的模块,并定义模块路径。
? 此处假设你有这样的目录结构:
RootDirectory/
├── CurrentProject/
│ ├── app/
│ │ └── build.gradle
│ └── settings.gradle
└── OtherModule/
└── build.gradle
? 为了在 CurrentProject
中引用与其同级目录的 OtherModule
,你需要在 CurrentProject/settings.gradle
文件中这样设置:
// 在 CurrentProject 的 settings.gradle 文件中
rootProject.name = 'CurrentProject'
include ':app'
include ':othermodule'
project(':othermodule').projectDir = new File(settingsDir.parentFile, 'OtherModule')
? 上面的设置做了以下几点:
- 手动包含了名为
othermodule
的模块。 - 设置了
othermodule
的项目路径,使其指向外层目录中的OtherModule
文件夹。
? 然后,在 CurrentProject/app/build.gradle
中添加对 othermodule
的依赖:
// 在 CurrentProject/app 的 build.gradle 文件中
dependencies {
// ... 其他依赖 ...
// 引入同一上层目录中的 OtherModule 作为依赖
implementation project(':othermodule')
}
? 以上设置即可使得 CurrentProject
能够正确地找到并引入它同级目录的 OtherModule
作为一个依赖项。
更复杂的目录结构,可以根据上述思路举一反三。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!