85

我有一个这样的目录/项目设置:

C:\
    _dev\
        Projects\
            Logger
            MyProject

Logger是一个使用 Gradle 的 Android 库项目。MyProject是一个标准的 Android 项目项目,需要使用Logger库。

我正在使用 Android Studio 并尝试将Logger添加到外部库。虽然这在开发过程中有效,但我收到有关在构建时找不到类的消息。

我对 Gradle 完全陌生,但在MyProject的 build.gradle 中尝试了以下操作:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.0"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 18
    }

    dependencies {
        compile files("../Logger")
    }
}

dependencies {
    compile 'com.android.support:gridlayout-v7:18.0.0'
    compile 'com.android.support:appcompat-v7:18.0.0'
}
4

4 回答 4

190

最简单的方法是将项目作为子项目制作MyProject一个多项目。Logger

settings.gradleMyProject目录中:

include ":logger"
project(":logger").projectDir = file("../logger")

您现在build.gradle可以MyProject将此库作为项目引用:

dependencies {
     compile 'com.android.support:gridlayout-v7:18.0.0'
     compile 'com.android.support:appcompat-v7:18.0.0'
     compile project(":logger")
}
于 2013-10-10T18:33:58.300 回答
14

安卓工作室 2.2.3:

添加到 settings.gradle。

include ':app', ':new_lib'
project(':new_lib').projectDir = new File('../new_lib/app')
  • 该路径必须相对于您正在处理的项目的根目录。
  • 您引用的模块必须引用它的“app”目录。

然后编辑您的项目结构 | 用于设置依赖项的模块。

于 2016-12-15T09:50:54.060 回答
10

尝试将依赖项添加到全局“依赖项”部分,而不是“android > 依赖项”。在开发过程中,使用“android”配置,但不打包运行时。

dependencies {
    compile 'com.android.support:gridlayout-v7:18.0.0'
    compile 'com.android.support:appcompat-v7:18.0.0'
    compile files("../Logger")
}

考虑设置多项目 gradle 配置也是值得的,在共享父目录中使用 build.gradle 和 settings.gradle,如下所示:http: //www.gradle.org/docs/current/userguide/ multi_project_builds.html

于 2013-10-10T15:10:38.583 回答
0

这是 settings.gradle.kts 和 build.gradle.kts (Kotlin DSL) 的解决方案。

settings.gradle.kts:

include(":my-sub-project")

顶级 build.gradle.kts:

dependencies {
    implementation(project(":app"))
    // ...
}

目录结构:

 project
  ├─── settings.gradle.kts
  ├─── build.gradle.kts
  ├───  my-sub-project
  │   ├─── build.gradle.kts
  │   └─── ...
  └─── ...
于 2022-02-18T11:20:44.997 回答