2013-07-24 71 views
1

首先,我已经有了一个Android Studio项目设置,可以在Studio中正常工作。我可以构建它并在设备上和模拟器中运行,而且还可以构建发布APK。Gradle/Android:将'root'指定为子项目的依赖关系

我现在正试图让我可以有一些命令行工具来处理我的构建。我所做的所有阅读都表明Android Studio使用gradle,但从我看到的情况来看,显然不是我的项目的情况 - 因为我必须在gradlew之前尝试创建我的build.gradle,settings.gradle文件构建任何东西 - 但Android Studio仍然可以编译和部署得很好。

这里是我的项目结构(因为它位于物理磁盘上):

Root Project (Android library project, contains all the src, logic, UI, activities, etc.) 
\--- WrapperProject (Android app, depends on the root project) 
\--- SubProject1 (Android library, used by root) 
\--- SubProject2 (Android library, used by root) 

这是我的根项目的settings.gradle文件

include ':SubProject1', ':SubProject2' 

同样的,这里是我的根项目的build.gradle文件。请注意,这个项目被标记为一个机器人库,不引用WrapperProject以任何方式

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.4' 
    } 
} 
apply plugin: 'android-library' 

dependencies { 
    compile project(':SubProject1') 
    compile project(':SubProject2') 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17" 

    defaultConfig { 
     minSdkVersion 9 
     targetSdkVersion 17 
    } 
    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 

     instrumentTest.setRoot('tests') 
    } 
} 

我能够建立成功地利用gradlew build我的根项目(应该吧?) - 但我的最终目标是从WrapperProject构建的APK,它依赖于根项目。你能建议我的WrapperProject的build.gradle文件应该包含什么吗?

回答

1

我在这里是因为寻找类似的答案,虽然我的问题主要是相反的。我发现命令行构建(gradlew)和Android Studio 0.2.2之间的整合充满了秘密。

我在配置文件中看到的一件事是:这是非常不错的测试/ alpha测试。您尚未将您的项目修改为最新的Android Studio 0.2.0注释。特别是'com.android.tools.build:gradle:0.4'应该被修改。参考:http://tools.android.com/recent

有一个开放源代码的应用程序,与您的基本需求相同。这是一个杂货店购物应用程序,作为样品提供给CouchDBLIte https://github.com/couchbaselabs/GrocerySync-Android

它必须引用现有的项目。它似乎使用比您更为明确的依赖关系语法。例如:“compile”com.couchbase.cblite:CBLiteEktorp:0.7.4'“ - 包括完整的类路径。但是他们定义了两种基本方法,即直接整合和神器整合。

对不起,我无法为您的语法问题提供更准确的答案 - 但我分享了迄今为止我所了解的内容。