我正在为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'
Run Code Online (Sandbox Code Playgroud)
在编写我的测试时,auto complete会识别工件的存在.但是当我跑步时我得到这个错误:
error: package android.support.test does not exist
error: package org.junit does not exist
Run Code Online (Sandbox Code Playgroud)
以及这两个的其他一些子包.
所以我从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在代码中没有显示错误?
我尝试过两次重新安装支持存储库.
我正在尝试导入
import android.support.test.InstrumentationRegistry;
Run Code Online (Sandbox Code Playgroud)
我的build.gradle文件
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
Run Code Online (Sandbox Code Playgroud)
在默认配置中:
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
Run Code Online (Sandbox Code Playgroud)
我在这里找不到图书馆吗?我正在尝试导入InstrumentationRegistry但它无法识别它!
我正在尝试将Espresso 2添加到我的项目中(它还有很多其他依赖项),但是在尝试运行测试时我遇到了这个错误:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Landroid/support/test/BuildConfig;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
...
Run Code Online (Sandbox Code Playgroud)
非测试版本工作正常.
有没有人有关于调试此方法的最佳方法的任何提示?
我试过跑./gradlew -q :<my_project>:dependencies,但我看不出任何明显的问题(虽然我不太了解解释它的输出):
<snip>
androidTestCompile - Classpath for compiling the androidTest sources.
+--- com.squareup.spoon:spoon-client:1.1.2
+--- com.google.dexmaker:dexmaker-mockito:1.0
| +--- com.google.dexmaker:dexmaker:1.0
| \--- org.mockito:mockito-core:1.9.5
| +--- org.hamcrest:hamcrest-core:1.1
| \--- org.objenesis:objenesis:1.0
+--- com.google.dexmaker:dexmaker:1.0
+--- org.mockito:mockito-core:1.9.5 (*)
+--- com.jayway.android.robotium:robotium-solo:5.3.1
+--- com.android.support.test.espresso:espresso-core:2.0
| +--- com.squareup:javawriter:2.1.1
| +--- org.hamcrest:hamcrest-integration:1.1
| | \--- org.hamcrest:hamcrest-core:1.1
| +--- org.hamcrest:hamcrest-library:1.1
| | \--- org.hamcrest:hamcrest-core:1.1
| +--- javax.inject:javax.inject:1
| …Run Code Online (Sandbox Code Playgroud) java android build.gradle android-gradle-plugin android-espresso