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

Я пытаюсь добавить loginfacebook для своего приложения. Но когда я добавил репозиторий, который нужен для этого. Это вызвало ошибку. AndroidJUnit4 не может решить сейчас.

ExampleInstrumentedTest.java

package com.example.user.enyatravelbataan;

import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;

import org.junit.Test;
import org.junit.runner.RunWith;

import static junit.framework.Assert.assertEquals;
import static org.junit.Assert.*;

/**
 * Instrumentation test, which will execute on an Android device.
 *
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
    // Context of the app under test.
    Context appContext = InstrumentationRegistry.getTargetContext();

    assertEquals("com.example.user.enyatravelbataan", 
appContext.getPackageName());
}
}

и это моя сборка: gradle (app)

apply plugin: 'com.android.application'

 android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
useLibrary 'org.apache.http.legacy'


repositories {
    mavenCentral()
}

defaultConfig {
    applicationId "com.example.user.enyatravelbataan"
    minSdkVersion 16
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile(name: 'wikitudesdk', ext: 'aar')
// compile 'org.apache.httpcomponents:httpclient:4.5'
// compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile files('libs/MD5Simply.jar')
compile files('libs/GenAsync.1.2.jar')
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:multidex:1.0.0'
compile 'com.google.android.gms:play-services:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.android.gms:play-services-appindexing:9.8.0'
compile 'com.android.support:cardview-v7:24.2.1'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.android.support:design:24.2.1'
compile 'com.android.volley:volley:1.0.0'
compile 'com.android.support:support-v4:24.2.1'

testCompile 'junit:junit:4.12'
}

repositories {
flatDir {
    dirs 'libs'
}
}
apply plugin: 'com.google.gms.google-services'

5 ответов


попробовать

androidTestCompile 'com.android.support:support-annotations:23.1.0'
androidTestCompile 'com.android.support.test:runner:0.4.1'
androidTestCompile 'com.android.support.test:rules:0.4.1'

добавить следующий раздел зависимостей

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

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

Я бил головой о стену и / или любой объект, который я вижу перед собой, чтобы проверить мой функциональный блок SQLite. Независимо от того, что я делаю, как строго следовать предложениям при условии, что мои многие мудрые люди по всему интернету не работают.

Мне тогда пришлось пойти в дошкольный и начать заново, чтобы понять мою глупую ошибку. Я узнал, что AndroidJUnit4 может используйте только с тестом инструментирования, а JUnit должен использоваться для локальных тестов. При этом папка должна быть src/androidTest / java. У меня был тестовый класс непосредственно под папкой androidTest, поэтому мне пришлось столкнуться с этой неприятной ошибкой. Однако в тот момент, когда я переместил его под src/androidTest / java все стало очень ясно, как "теперь я ясно вижу, что дождь кончился".

взгляните на эту статью что и говорит...

запустите инструментальные модульные тесты для запуска инструментальных тестов, следуйте эти шаги:

убедитесь, что ваш проект синхронизирован с Gradle, нажав кнопку Синхронизация Проект на панели инструментов. Выполните тест одним из следующих способов: Чтобы выполнить один тест, откройте окно проект и щелкните правой кнопкой мыши проверьте и нажмите кнопку Выполнить . Чтобы проверить все методы в классе, щелкните правой кнопкой мыши a класс или метод в тестовом файле и нажмите кнопку Выполнить . Чтобы запустить все тесты в каталог, щелкните правой кнопкой мыши на каталоге и выберите выполнить тесты . Этот Android плагин для Gradle компилирует инструментальный тестовый код, расположенный в каталоге по умолчанию (src/androidTest/java/) строит тест APK и производство APK, устанавливает оба APKs на подключенном устройстве или эмулятор и запускает тесты. Затем Android Studio отображает результаты инструментального выполнения теста в окне Выполнить.

друзья,instrumentation проверьте папку должно быть (не забывайте случай)

src/androidTest / java

и локальные тесты папка должна быть

src/test / java

затем вы можете иметь папку(ы) пакета, чтобы соответствовать вашему пакету приложений

надеюсь, это поможет сообществу!


еще одна важная вещь (которая всплыла эта проблема для меня), чтобы проверить, если вы изменили тип сборки для тестов - это будет testBuildType опция в вашем модуле build.gradle.
Если вы изменили его (как у меня), то перед редактированием любых тестов Android:

  1. перейдите на вкладку Android Studio build/flavors
  2. выберите тот же тип сборки, который вы указали в своем testBuildType свойство Gradle
  3. синхронизация Android Studio с Gradle в

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

Примечание: хотя это решает моей основной проблемы, как описано здесь вопрос, я все еще ищу способ для поддержки пользовательских типов построения тестов для Android, но и позволяют отладить типа; моя конечная цель-иметь ки тесты с специальная сборка тип, но пусть разработчики запускают их в 'отладка' режиме. Так что, если у кого-то есть идея как это сделать, раздел комментариев ваш. :)


просто добавить compile "com.android.support.test:runner:1.0.1" к вашему Gradle.


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

Примечание:

мой проект имел несколько модулей, и мне пришлось обновить их в каждый модуль.