如何在Android Studio项目中包含库模块依赖项?

and*_*vil 14 android gradle android-studio build.gradle android-gradle-plugin

我正在将项目从Eclipse迁移到AndroidStudio.我在这个项目中有一个用作lib的项目.这个lib叫做PullToRefresh.

我已经尝试了很多方法将这个项目导入AS,但我尝试的任何方法都有效.

在我的项目中,我有这个文件夹结构:

Project Root
+-- app
|   +-- builds
|   +-- libs
|   |   +-- PullToRefresh (my lib project)
|   +-- src
|   |   +-- main (java code and resources)
Run Code Online (Sandbox Code Playgroud)

在build.gradle中,我试过这样做:

dependencies {
    compile project(":libs:PullToRefresh")
}
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

Gradle 'my_project' project refresh failed: Project with path ':libs:PullToRefresh'
could not be found in project ':app'
Run Code Online (Sandbox Code Playgroud)

pyu*_*s13 42

Android Studio适用于项目模块概念,所有模块都应位于根目录(您的项目目录)中.一个模块可以依赖于其他模块/模块.您的库被视为同一项目下的不同模块,您的主模块(在您的情况下为app)取决于它们.

稍微改变你的项目结构:

Project Root
+-- libs
    +-- PullToRefresh (my lib project)
+-- app
|   +-- builds
|   +-- src
|   |   +-- main (java code and resources)
    +-- .....
+--settings.gradle
Run Code Online (Sandbox Code Playgroud)

在你的行中加入这一行 settings.gradle

include ':libs:PullToRefresh'
Run Code Online (Sandbox Code Playgroud)

你的build.gradle看起来很好.我建议你将你的目录名从libs更改为库,因为你的jar依赖项使用libs而不是模块依赖项.

并将其保存在主模块的build.gradle文件中:

dependencies {
    compile project(":libs:PullToRefresh")
}
Run Code Online (Sandbox Code Playgroud)

  • Settings.gradle应该是更高的目录级别,直接在项目根目录下.虽然它正在发挥作用,但对我来说这有点神秘. (2认同)

小智 6

使用帮助 - >键入"导入模块",然后会出现wizzard!