15

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

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'
    }
}
4

3 回答 3

11

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

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

官方文档“gradle-samples-0.13.zip\gradle-samples-0.13\androidManifestInTest”中有一个示例 - 可以看出包含测试清单不需要特殊配置。

于 2014-09-19T07:41:52.617 回答
0

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

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

库的清单被合并到测试应用程序的清单中(就像任何引用此库的项目一样)。

于 2014-01-01T20:13:44.277 回答
-2

是的,您可以在定义 sourceSets 时在 build.gradle 中指定清单的路径:

 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

于 2013-10-23T15:26:54.633 回答