适用于Gradle instrumentTest的AndroidManifest.xml

时间:2013-10-23 15:15:58

标签: java android gradle

有没有办法为gradle测试应用指定额外的AndroidManifest.xml文件?我需要它来为我的单元测试指定其他权限和活动。

UPD: 我已尝试在instrumnetTest文件中添加build.gradle部分,但它没有帮助,我仍然遇到Unable to resolve activity for: Intent错误

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 {
        manifest.srcFile 'src/instrumentTest/AndroidManifest.xml'
        java.srcDir 'src/instrumentTest/Java'
    }
}

3 个答案:

答案 0 :(得分:10)

如果您能够使用Android Gradle插件的 0.13.0 (或更高版本)版本,则可以为Android测试(以前称为仪器测试)指定特殊AndroidManifest.xml

只需将文件放在src/androidTest/AndroidManifest.xml - 清单合并将在您运行gradle测试任务时处理该文件。

官方文档"gradle-samples-0.13.zip\gradle-samples-0.13\androidManifestInTest"中有一个示例 - 正如人们可以看到的那样,不需要特殊配置来包含测试清单。

答案 1 :(得分:0)

我为测试目的制作了单独的'android-library'项目,并将所有必需的组件(活动,服务等)添加到./src/main/AndroidManifest.xml

根据文件http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Testing-Android-Libraries

  

库的清单合并到测试的清单中   app(引用此库的任何项目的情况)。

答案 2 :(得分:-2)

是的,您可以在build.Set中定义源集时,可以指定清单的路径:

 sourceSets {
        main {
            manifest.srcFile 'src/main/AndroidManifest.xml'
            java.srcDir 'src/main/src'
            res.srcDir 'src/main/res'
            assets.srcDir 'src/main/assets'
            resources.srcDir 'src/main/src'
            aidl.srcDir 'src/main/src'
        }

 instrumentTest {
            manifest.srcFile 'src/instrumentTest/AndroidManifest.xml'
            java.srcDir 'src/instrumentTest/src'
            res.srcDir 'src/instrumentTest/res'
            assets.srcDir 'src/instrumentTest/assets'
            resources.srcDir 'src/instrumentTest/src'
            aidl.srcDir 'src/instrumentTest/src'
        }
}

您可以查看此文档: http://tools.android.com/tech-docs/new-build-system/user-guide