web-dev-qa-db-fra.com

Impossible de résoudre le symbole AndroidJUnit4

J'essaie d'ajouter loginfacebook pour mon application. Mais quand j'ai ajouté un référentiel qui est nécessaire pour le faire. Cela a causé une erreur. AndroidJUnit4 ne peut pas résoudre maintenant.

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());
}
}

et ceci est ma construction: 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'

Essayer

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'

Ajouter la section des dépendances ci-dessus

configurations.all {
   resolutionStrategy.force 'com.Android.support:support-annotations:23.1.0'
}
7
Pehlaj

Une autre chose importante (qui a fait surface pour moi) est de vérifier si vous avez changé le type de construction pour les tests - qui serait l’option testBuildType dans le build.gradle de votre module.
Si vous l'avez changé (comme je l'ai fait), alors avant de modifier un test Android: 

  1. Allez dans votre onglet de compilation/saveurs Android Studio
  2. Sélectionnez le même type de construction que celui que vous avez spécifié dans votre propriété testBuildType Gradle
  3. Synchroniser Android Studio avec Gradle

Pour exécuter l'application normalement à nouveau, vous devrez évidemment revenir à «débogage», je suppose. 

Remarque: Même si cela résout le problème principal décrit dans la question, je cherche toujours un moyen de prendre en charge les types de construction personnalisés pour les tests Android, mais aussi d'autoriser les types de construction de débogage; Mon objectif ultime est de laisser CI exécuter les tests avec un type de construction spécial, tout en laissant les développeurs les exécuter en mode "débogage". Donc, si quelqu'un a une idée sur la façon de réaliser cela, la section commentaires est la vôtre. :)

1
milosmns

Pour moi, c’est parce que certaines importations androidTestImplementation n'étaient pas à jour dans build.gradle. Après que je les ai mis à jour all avec la version la plus récente, l'erreur a disparu. 

Remarque:  

Mon projet comportait plusieurs modules et je devais les mettre à jour dans every module.

0
Suragch

Ajoutez simplement compile "com.Android.support.test:runner:1.0.1" à votre Gradle.

0
DAVID KATHOH