2013-10-10 23 views
31

Mam Instalator katalog/projekt tak:Wymagają projektu Gradle z innego katalogu

C:\ 
    _dev\ 
     Projects\ 
      Logger 
      MyProject 

Logger to projekt biblioteki Android użyciem Gradle. MyProject to standardowy projekt systemu Android, który musi korzystać z biblioteki Logger.

Używam Android Studio i próbowałem dodać Logger do zewnętrznych bibliotek. Podczas gdy to działa podczas programowania, otrzymuję wiadomości o tym, że klasa nie została znaleziona podczas budowania.

Jestem całkowicie nowy w Gradle, ale próbowałem następujących w moim build.gradle ciągu 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' 
} 
+3

Podoba Ci się to? http://stackoverflow.com/questions/17479076/android-studio-add-external-project-to-build-gradle – Lesleh

+0

Próbowałem już tego niestety. obejmują ": logger" projekt (": logger") projectDir = nowy plik (settingsDir, "../SysLog") – euantorano

Odpowiedz

79

najprostszy sposób ma na celu uczynienie MyProject wielo projektu z projektem Logger jako podprojektu.

settings.gradle w MyProject katalogu:

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

w build.gradle z MyProject można teraz odwoływać się do tego lib jako projekt:

dependencies { 
    compile 'com.android.support:gridlayout-v7:18.0.0' 
    compile 'com.android.support:appcompat-v7:18.0.0' 
    compile project(":logger") 
} 
+0

Dzięki, to jest dokładnie to, czego potrzebowałem. Projekt został skompilowany pomyślnie, jak tylko dodałem to. – euantorano

+0

Czy można użyć wartości właściwości z pliku gradle.properties pliku katalogu Gradle? – Rick

+0

Jest to dokładnie to, co właśnie wywnioskowałem, że być może będę w stanie zrobić, i tak jest dokładnie odpowiedź, której szukałem :-D – Antinous

3

spróbuj dodać zależność do globalnej sekcji „zależności”, a nie „android > zależności ". Podczas programowania używana jest konfiguracja "android", ale nie w celu spakowania środowiska wykonawczego.

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

Może być również warto zajrzeć do utworzenia konfiguracji Gradle wieloma projektami, z build.gradle i settings.gradle w udostępnionym katalogu nadrzędnego jak tutaj: http://www.gradle.org/docs/current/userguide/multi_project_builds.html

+0

Po prostu próbowałem, bez powodzenia niestety. Nadal otrzymuję te same błędy. – euantorano

3

Android Studio 2.2.3:

Dodaj do settings.gradle.

include ':app', ':new_lib' 
project(':new_lib').projectDir = new File('../new_lib/app') 
  • Ścieżka musi być względna od korzenia projektu pracujesz dalej.
  • Moduł, do którego się odwołuje, musi mieć odniesienie do katalogu "app" .

Następnie edytuj swoją strukturę projektu | Moduły do ​​konfigurowania zależności.

+0

Próbowałem tego w Android Studio, ale teraz mój projekt główny nie jest już uważany za bibliotekę i warianty kompilacji pokaż tylko, co nazwałeś ": new_lib" jako dostępny moduł. Oryginalna "aplikacja" nie znajduje się już na liście modułów. – ZeroStatic

Powiązane problemy