Android测试模块(Gradle插件1.3)没有';t工作:“;“未找到调试类”;

Android测试模块(Gradle插件1.3)没有';t工作:“;“未找到调试类”;,android,android-studio,android-gradle-plugin,android-testing,Android,Android Studio,Android Gradle Plugin,Android Testing,我正在尝试设置一个单元测试模块,如AndroidStudio博客文章中所述。但是,执行gradle构建失败,它告诉我“未找到名为‘调试类’的配置”。Debug是它试图构建的targetVariant的名称,但我不明白这里出了什么问题 这是我的测试模块的gradle文件 apply plugin: 'com.android.test' android { compileSdkVersion 22 buildToolsVersion "22.0.1" targetProjectPath ':ap

我正在尝试设置一个单元测试模块,如AndroidStudio博客文章中所述。但是,执行gradle构建失败,它告诉我“未找到名为‘调试类’的配置”。Debug是它试图构建的targetVariant的名称,但我不明白这里出了什么问题

这是我的测试模块的gradle文件

apply plugin: 'com.android.test'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

targetProjectPath ':app'
targetVariant 'debug'
}    
这是描述新测试模块功能的博客帖子。


我正在使用Gradle插件v1.3.0

我还对分离应用程序代码和测试代码感到好奇,我很难弄清楚。我查看堆栈跟踪,发现(第238行)有一个TODO来修复gradle中的问题

1) 关于构建风格,您是对的。您必须输入正确的变体

targetVariant '<flavor>Debug'
2) 您还需要更改targetProjectPath的module build.gradle。添加以下代码段:

android {

    // ...

    publishNonDefault true

    // ...

}

它发布所有构建变体!由于gradle的某些限制,默认情况下它是禁用的。

下面是一个示例应用程序

你必须使用

buildToolsVersion = '23.0.0rc3'
当然

publishNonDefault true

你在用Gradle插件1.3.0吗?是的,我在用。我在标题中提到了它,但不是帖子本身。问题似乎是我在使用构建风格,所以没有所谓的“deubg”。然而,在我的第一次尝试中,我无法通过将targetVariant指向我的构建风格来解决这个问题。我将在短期内对此进行研究……如果您有产品风格,您可能必须执行
targetVariant'
查看Android测试蓝图示例中的仅测试模块:“publishNotdefault true”是我在Android开发者工具社区中也得到的答案。这对我来说很有效。有什么理由不使用您的“发布”版本作为您的targetVariant吗?@AlexCrist debug是用于测试的默认非精简构建类型,因为它构建和运行的时间更短(减少测试周期)。当然,测试发布版本也是很好的,尤其是在缩小/模糊或在发布块中有任何其他配置时。因此,调试频繁的测试和发布。PublishNonDefaultTrue修复了我的问题。我现在没有口味,所以targetVariant“debug”适合我。
publishNonDefault true