为什么库模块android.support.test在添加依赖项中不可见



我正在Android Studio中的项目中添加Espresso。我已经安装了Support Repository,事实上已经在使用它的各个部分。然后,我按照安装说明将这些依赖项添加到app/build.gradle中:

androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'

在编写测试时,auto-complete会识别工件的存在。但当我运行时,我得到了这个错误:

error: package android.support.test does not exist
error: package org.junit does not exist

以及这两者的一些其他子包。

因此,我从build.gradle中删除了上面的两行,并试图在GUI项目结构/模块/依赖项中添加

无论是"com.android.support.test.sespresso:sespresso core:2.0"还是"com.andrio.support.test:testing support-lib:0.1"都不是可供选择的选项。然而,在我的文件系统中,有<sdk>extrasandroidm2repositorycomandroidsupporttestespressoespresso-core2.0和包括espresso-core-2.0.aar在内的完整文件,我可以通过winzip在其中打开和导航。在文件系统中,它看起来与通过带有支持库的SDK Manager安装的其他库没有什么不同。

为什么安卓工作室不识别这个库?

非常感谢你的帮助,我所能找到的其他人似乎都没有遇到这个问题。这是我能找到的最接近的:为什么编译时库模块中的包不存在,即使Android Studio在代码中没有显示错误?

我已经尝试过两次重新安装Support Repository。

我遇到了同样的问题,我发现androidTestCompile的依赖项只有在调试构建变体中默认可见。

您可以通过将其添加到构建中来更改要测试的构建变体。gradle:

android {
...
testBuildType "staging"
}

"staging"只是一个例子,您应该将其替换为您的一个构建变体。

请记住,只测试了一种变体。

点击此处了解更多信息https://code.google.com/p/android/issues/detail?id=98326

有两种不同的测试依赖配置:

  • testCompile-由单元测试套件使用(位于src/test文件夹中,由./gradlew test调用)
  • androidTestCompile-由集成测试套件使用(位于src/androidTest文件夹,由./gradlew connectedAndroidTest调用)

我怀疑您的测试代码位于错误的测试套件位置

在您的情况下,您的测试代码应该进入src/androidTest文件夹,测试套件应该通过运行./gradlew connectedAndroidTest来执行

我也遇到了这个问题,我在谷歌推荐的src/androidTests下有我的android测试用例,但这导致了build.gradle:的问题

sourceSets {
main {
java.srcDirs = ['src']
}
}

通过以上操作,它试图在正常的调试编译目标内编译我的所有测试用例,该目标不包括espresso和其他依赖项,因为它们列在androidTestCompile下。

最后,我通过从编译中排除androidTest子目录来解决这个问题,并将androidTest的根目录设置为适当的目录。

sourceSets {
main {
java.srcDirs = ['src']
java.excludes = ['androidTest/**']
}
androidTest.setRoot('src/androidTest')
}

我也遇到过同样的问题,通过在Android Studio的"构建"选项卡中点击"清洁项目"来解决。

点击Clean Project后,查看Gradle控制台是否存在潜在错误,如果它成功完成了清理,只需进入任何一个测试类并键入"Espresso",智能代码完成应该会提供建议。在那之后,当你使用浓缩咖啡时,所有东西都应该自动导入。

希望这能有所帮助!

我的解决方案越来越简单,我刚去了Android StudioFile>Invalidate Caches/Restart,它工作正常,似乎Android Studio保留了一些Rebuild/Clean无法清理的缓存。

我在将我的一个应用程序移植到一个新的可视化范例中时遇到了这个问题,发现我的应用程序级别build.gradle缺少以下内容:

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})

1.单击工具栏中Run按钮旁边的下拉菜单。

2.单击编辑配置

3.现在删除除应用程序(在Android应用程序中)和默认应用程序之外的所有其他应用程序。

这对我很有效。希望能有所帮助。

最新更新