无法parsing符号“AndroidJUnit4”

很明显,我需要正确的导入声明来解决这个问题。 根据AndroidJUnit4的文档 ,这应该是

 import android.support.test.runner.AndroidJUnit4; 

当我这样做时,Android Studio突出显示红色runner并抱怨“无法parsing符号”跑步者“”。

背景

我遵循Android开发者网站上的教程来设置使用UI Automator的testing 。 我遇到的第一个问题是, com.android.support:support-v4:22.2.0 com.android.support.test:runner:0.2 com.android.support:support-v4:22.2.0 com.android.support.test:runner:0.2 com.android.support:support-v4:22.2.0com.android.support.test:runner:0.2取决于不同版本的com.android.support:support-annotations 。 我遵循这个Android错误报告的build议,并将以下内容添加到我的项目的build.gradle中的所有项目:

 configurations.all { resolutionStrategy.force 'com.android.support:support-annotations:22.1.0' } 

这解决了即时的错误,但我怀疑这导致了我目前的问题。 有没有人有任何关于如何解决这个问题的build议?

来自`./gradlew:app:dependencies的相关章节

 androidTestCompile - Classpath for compiling the androidTest sources. +--- com.jayway.android.robotium:robotium-solo:5.2.1 +--- com.squareup:fest-android:1.0.8 | \--- org.easytesting:fest-assert-core:2.0M10 | \--- org.easytesting:fest-util:1.2.5 +--- com.android.support.test:runner:0.2 | +--- junit:junit-dep:4.10 | | \--- org.hamcrest:hamcrest-core:1.1 | +--- com.android.support.test:exposed-instrumentation-api-publish:0.2 | \--- com.android.support:support-annotations:22.0.0 -> 22.2.0 +--- com.android.support.test:rules:0.2 | \--- com.android.support.test:runner:0.2 (*) \--- com.android.support.test.uiautomator:uiautomator-v18:2.1.0 compile - Classpath for compiling the main sources. +--- com.android.support:appcompat-v7:22.2.0 | \--- com.android.support:support-v4:22.2.0 | \--- com.android.support:support-annotations:22.2.0 +--- com.android.support:support-v4:22.2.0 (*) +--- com.google.android.gms:play-services:6.1.71 | \--- com.android.support:support-v4:20.0.0 -> 22.2.0 (*) +--- com.crashlytics.android:crashlytics:1.+ -> 1.1.13 \--- com.jakewharton:butterknife:5.1.2 

确保您的应用程序在debugging版本变体中: 在这里输入图像说明

我犯了错误,把testing类放在src / test。 将它们移动到src / androidTest / java / …之后,依赖项已解决。 也许这也是你的问题。

好的,这是你的错误和我的!

如果我们要为本地unit testing编写一些代码,我们不应该使用@RunWith(AndroidJUnit4.class)因为我们不使用AndroidJUnit4,但是我们需要Junit4。 所以我们应该写@RunWith(JUnit4.class) 。 当然你的javatesting文件在app/src/test/java/your.package.name目录下。

否则,如果(!!)我们要编写一些Android Instrumentation Unit Test,我们应该把我们的testingjava文件放到app/src/androidTest/java/your.package.name目录中,并使用@RunWith(AndroidJUnit4.class)

我发现这里有比我使用的testing支持库更新的版本:

 dependencies { androidTestCompile 'com.android.support.test:runner:0.5' androidTestCompile 'com.android.support.test:rules:0.5' androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2' } 

把这个代码放在你的依赖关系中

 compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' })