2013-10-10 53 views
31

我有一個目錄/項目設置是這樣的:要求搖籃項目從另一個目錄

C:\ 
    _dev\ 
     Projects\ 
      Logger 
      MyProject 

記錄儀是使用搖籃一個Android庫項目。 MyProject是一個標準的Android項目項目,需要使用Logger庫。

我正在使用Android Studio,並嘗試將記錄器添加到外部庫。雖然這在開發過程中有效,但我在建築時收到關於該課程的消息。

我完全新的搖籃,但試圖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' 
} 
+3

是否這樣? http://stackoverflow.com/questions/17479076/android-studio-add-external-project-to-build-gradle – Lesleh

+0

已經嘗試,不幸的。 包含':logger' project(':logger')。projectDir = new File(settingsDir,'../SysLog') – euantorano

回答

79

的最簡單方法將MyProject項目作爲子項目與Logger項目合併爲一個多項目。

MyProject目錄settings.gradle

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

build.gradleMyProject的你現在可以參考這個LIB作爲一個項目:

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

謝謝,這正是我所需要的。一旦我添加了這個項目,項目就成功編譯了。 – euantorano

+0

您可以使用Gradle主目錄的gradle.properties文件中的屬性值嗎? – Rick

+0

這正是我剛纔推斷的我可以做的,所以正是我正在尋找的答案:-D – Antinous

3

嘗試添加依賴於全球的「依賴性」部分,而不是「機器人>依賴關係「。 在開發過程中,使用「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

+0

剛剛嘗試過,沒有成功,不幸的是。仍然得到相同的錯誤。 – euantorano

3

的Android 2.2.3工作室:

加入settings.gradle。

include ':app', ':new_lib' 
project(':new_lib').projectDir = new File('../new_lib/app') 
  • 的路徑必須是你在工作 項目的根目錄相對。
  • 您所引用的模塊必須具有對其「應用」 目錄的引用。

然後編輯您的項目結構|模塊來設置依賴關係。

+0

我在Android Studio中嘗試了這一點,但現在我的根項目不再被視爲庫和構建變體只顯示你所謂的「:new_lib」作爲可用的模塊。原來的「應用程序」不再位於模塊列表中。 – ZeroStatic