2013-08-20 87 views
7

我将我的Android项目迁移到gradle构建系统,我无法从我的Integration Test Android项目导入我的Android项目。使用gradle构建系统创建测试Android apk

我使用多个项目配置与几个android库,它的工作很好,但我有一个问题,建立我的测试项目与多项目设置。由于外部原因,我需要继续使用这种结构。

MyProject/ 
| settings.gradle 
+ MyApp/ 
    | build.gradle 
    | src 
    | res 
    | libs 
+ Instrumentation-Tests/ 
    | build.gradle 
    | src 
    | res 
    | libs 

我目前的配置文件看起来像:

settings.gradle:

include ':MyApp', 'Instrumentation-Tests' 

MyAppp /的build.gradle:

apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile files('.....jar') 
    compile project('....') 
    compile 'com.android.support:support-v4:13.0.+' 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 16 
    } 

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

    } 
} 

最后我Instrumentation-Tests/build.gradle

apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile project(':MyApp') 
    compile files('.....jar') 
    compile 'com.android.support:support-v4:13.0.+' 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 11 
     targetSdkVersion 16 
    } 

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

当我运行gradle compileDebug项目MyApp正确编译(和它的所有模块),而是因为它无法找到MyApp定义了Android类Instrumentation-Tests编译失败。

compile(project(':MyApp')) { transitive = true } 

声明的依赖时:

我读过的文档和很多帖子,但我不能使它工作,我也尝试使用。

有没有人有同样的问题? 我想将MyApp项目依赖项的输出包含到Instrumentation-Tests编译的类路径中,但我不知道是否可以使用android gradle插件。

+0

你读过这样的东西:http://stackoverflow.com/questions/16586409/how-can-i-create-tests-in-android-studio和这个:http://tools.android。 COM /科技的文档/新构建系统/用户指南#TOC-测试?我想知道你是否遵循了这些说明,但是如果它能适用于你当前的设置,就改变了源代码集的位置。您可能需要指定与项目根目录相关的测试源目录。 – jDutton

+0

我最终将所有移动到gradle结构,我也将我的所有仪器测试(单位和功能)移动到instrumentationTest文件夹内,并且一切正常! – David

回答

1

这不会起作用(截止现在),因为您只能将库项目指定为依赖关系。因此,对于compile project(':MyApp')MyApp的的情况下

在它的的build.gradle应该是一个Android库项目与apply plugin: 'android-library'。这当然没有意义。

要有一个单独的测试项目,你需要别的东西(我正在研究自己)。

编辑:放弃与Gradle测试,使用Ant。

+0

我最终将所有移动到gradle结构,我也将我的所有仪器测试(单位和功能)移动到instrumentationTest文件夹内,并且一切正常! – David