Gradle仪器测试的AndroidManifest.xml

16

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

更新:我已经尝试在build.gradle文件中添加instrumnetTest部分,但它没有帮助,我仍然收到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'
    }
}

你能解决这个问题吗?我目前遇到了这个问题,但恐怕没有办法让它工作,因为AndroidManifest.xml是自动生成的,用于instrumentTest:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Basics-and-Configuration。这真的很限制人 :( - Y2i
我已经设法解决了这个问题,但只是通过改变Android gradle插件本身 - 我认为没有不这样做就能实现的可能性。 - ZoFreX
我也想这样做,在测试应用程序中覆盖图标和应用程序名称。可惜它不被支持。@ZoFreX,你在哪里进行了更改,或者你联系过谷歌的人员吗? - Jeff Brateman
3个回答

11
如果您能够使用Android Gradle Plugin的0.13.0(或更高版本),则可以为Android Tests(以前称为Instrument Tests)指定一个特殊的AndroidManifest.xml。只需将文件放在src/androidTest/AndroidManifest.xml,当运行gradle测试任务时,清单合并器将处理该文件。 官方文档中有一个示例"gradle-samples-0.13.zip\gradle-samples-0.13\androidManifestInTest" - 可以看到没有需要特殊配置即可包含测试清单。

0

-2

可以的,在你的 build.gradle 文件中定义 sourceSets 时,你可以指定你的 manifest 的路径:

 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


测试时忽略清单文件。根据文档
sourceSet 不应包含 AndroidManifest.xml,因为它会自动生成。
- Jeff Brateman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接