Не удается разрешить символ 'AndroidJUnit4'



очевидно, мне нужен правильный импорт statment, чтобы решить эту проблему. Согласно docs for AndroidJUnit4, это должно быть



import android.support.test.runner.AndroidJUnit4;


когда я это делаю, Android Studio выделяет runner в красном и жалуется "не может решить символ 'бегун'".



фон



я добрался до этого момента, следуя учебникам на сайте разработчика Android для настройка тестов с помощью UI Automator. Первый проблема, с которой я столкнулся, была в том, что com.android.support:support-v4:22.2.0 и com.android.support.test:runner:0.2 зависит от различных версий com.android.support:support-annotations. Я следовал предложениям от этот отчет об ошибке Android и добавил следующее allprojects в моем проекте build.gradle:



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


это решило непосредственную ошибку, но я подозреваю, что это приведет к моим текущим проблемам. У кого-нибудь есть предложения о том, как это исправить?



соответствующие разделы `./gradlew : приложение: зависимости



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
699   9  

9 ответов:

убедитесь, что ваше приложение в отладочном варианте сборки. Перейти к Построить > Выберите Вариант Построения... и должно появиться следующее:

enter image description here

Я сделал ошибку, чтобы поставить тест классы src / test. После перемещения их в src / androidTest/java/ зависимость была устранена.

Итак, вот ваша ошибка и моя!

если мы собираемся написать кусочек кода Локальное Модульное Тестирование мы не должны использовать @RunWith(AndroidJUnit4.class) потому что мы не используем AndroidJUnit4, но нам нужен Junit4. поэтому мы должны написать @RunWith(JUnit4.class). И, конечно же, ваш тестовый файл java находится под

нашел здесь что есть более новые версии библиотеки поддержки тестирования, чем то, что я использовал:

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'
}

Примечание: обязательно используйте самые последние версии этих библиотек. Этот вопрос относится к тому времени, когда библиотека поддержки тестов Android была новой, а номера версий здесь очень устарели.

я решил проблему, сделав небольшое изменение в сборке приложения.файл gradle. В dependencies { ... } раздел, не забудьте включить следующую строку:

debugImplementation 'com.android.support.test:runner:1.0.1'

или любая версия является самой новой в этот момент (...Compile устарел и был заменен на ...Implementation). Примечание использование debugImplementation. Android Studio предложил авто-включая его с androidTestImplementation, что не сработало.

я узнал, как изменить его с теста на отладку, заглянув в проект Структура под зависимостями модуля приложения, где вы можете изменить область действия каждой зависимости, см. ниже.

Project structure

поместите этот код в свои зависимости

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'
})

в моем случае это помогло для варианта выпуска:

android {
    ...
    testBuildType "release" 
}

если кто-то все еще имеет эту проблему не может решить символ 'AndroidJUnit4' и с помощью api 27 добавить в сборку.gradle в модуле приложения следующее:

**testImplementation 'junit:junit:4.12'**

// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test:rules:1.0.1'

// Espresso dependencies
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

добавлять

compile com.android.support.test:runner:0.5'

решил эту точную проблему для меня.

Comments

    Ничего не найдено.