Подтвердить что ты не робот

Требовать проект Gradle из другого каталога

У меня есть настройка каталога/проекта, например:

C:\
    _dev\
        Projects\
            Logger
            MyProject

Logger - это проект библиотеки Android, использующий Gradle. MyProject - это стандартный проект проекта Android, который должен использовать библиотеку Logger.

Я использую Android Studio и пытаюсь добавить Logger во внешние библиотеки. Пока это работает во время разработки, я получаю сообщения о том, что класс не найден при создании.

Я полностью новичок в Gradle, но попробовал следующее в моем build.gradle в MyProject:

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'
}
4b9b3361

Ответ 1

Самый простой способ - сделать MyProject мультипроект с проектом Logger в качестве подпроекта.

settings.gradle в каталоге MyProject:

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")
}

Ответ 2

Android Studio 2.2.3:

Добавить в settings.gradle.

include ':app', ':new_lib'
project(':new_lib').projectDir = new File('../new_lib/app')
  • Путь должен быть относительным от корня проекта, который вы работаете на.
  • Модуль, на который вы ссылаетесь, должен иметь ссылку на него "app" каталог.

Затем отредактируйте свою структуру проекта | Модули для настройки зависимостей.

Ответ 3

Попробуйте добавить зависимость в глобальный раздел "зависимости", а не в "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

Ответ 4

Под MyProject создайте файл settings.gradle:

rootProject.name='MyProject'
include '../Logger'

затем в build.gradle укажите зависимость проекта:

dependencies {
    compile project(':../Logger')
}