繁体   English   中英

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

[英]Why is library module android.support.test not visible in add dependency

我正在为Android Studio中的项目添加Espresso。 我已经安装了支持存储库,实际上已经使用了它的部分。 然后我根据安装说明将这些依赖项添加到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项目结构/ modules / dependencies中添加

既没有'com.android.support.test.espresso:espresso-core:2.0'也没有'com.android.support.test:testing-support-lib:0.1'作为可供选择的选项。 但是,在我的文件系统中有<sdk>\\extras\\android\\m2repository\\com\\android\\support\\test\\espresso\\espresso-core\\2.0\\以及包括espresso-core-2.0.aar在内的全套文件我能够通过winzip在其中打开和导航。 在文件系统中,它看起来与通过SDK Manager和Support Repository安装的其他库没什么区别。

android studio为什么不识别这个库?

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

我尝试过两次重新安装支持存储库。

我有同样的问题,我发现androidTestCompile的依赖关系只在调试版本变体中默认可见。

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

android {
    ...
    testBuildType "staging"
}

“staging”只是一个例子,你应该用你的一个构建变体替换它。

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

有关详情,请访问https://code.google.com/p/android/issues/detail?id=98326

我也有这个问题,并且我在Google推荐的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')
}

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

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

我怀疑你的测试代码是在错误的测试套件位置

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

我遇到了同样的问题,它是通过从Android Studio的Build选项卡中点击Clean Project来解决的。

点击清洁项目后,观看Gradle控制台是否存在潜在错误,如果成功完成清理,只需进入任何一个测试类并输入“Espresso”,智能代码完成应提供建议。 在此之后,当您使用Espresso时,所有内容都应自动导入。

希望这可以帮助!

我的解决方案更简单,更简单,我只是去Android Studio File>Invalidate Caches/Restart并且它工作正常,似乎android工作室保留了一些不会用Rebuild/Clean缓存。

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

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

1.单击工具栏中“运行”按钮旁边的下拉菜单。

2.单击“编辑配置”

3.现在删除除app(在Android App中)和默认值之外的所有其他内容。

这对我有用。 希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM