我正在为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在代码中没有显示错误?
我尝试过两次重新安装支持存储库.
大约一个星期前,我问过这个问题
为什么库模块android.support.test在添加依赖项中不可见
经过多次头部刮擦和项目设置变形后,我发现这个app/build.gradle依赖配置让我比以前更进一步,因为至少项目编译但是在尝试运行时没有构建:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
applicationId "com.my.package.name"
minSdkVersion 8
targetSdkVersion 22
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets { main { java.srcDirs = ['src/main/java', 'src/androidTest/java'] } }
packagingOptions {
exclude 'LICENSE.txt'
}
}
dependencies {
compile 'com.android.support:appcompat-v7:22.1.0'
compile 'com.android.support:support-v4:22.1.0'
compile 'com.android.support.test.espresso:espresso-core:2.1'
compile 'com.android.support.test:testing-support-lib:0.1'
}
Run Code Online (Sandbox Code Playgroud)
请注意,compile而不是androidTestCompile测试支持依赖项.使用androidTestCompile上述问题中提到的问题的结果.
另请注意sourceSets声明中的两个srcDirs.当我手动创建androidTest/java目录时,该声明自动设置.这应该以不同的方式宣布吗
同样,getDefaultProguardFile在ide中用工具提示"无法解析符号'getDefaultProguardFile'"加下划线.如果这是至关重要的.
这种新的启示,切换androidTestCompile到compile,让我相信有什么毛病我成立了项目结构的单元测试的方式.这是我的项目结构图:
我应该提一下,从Eclipse迁移时会自动创建这个项目/模块结构.通过图标装饰,它看起来至少将我的测试类识别为测试类.
但现在我陷入了这个错误:
错误:任务':mymodule:dexDebug'的执行失败.com.android.ide.common.internal.LoggedErrorException:无法运行命令:C:\ …