2016-08-28 2 views
1

Это мой тест:Android. Как использовать Espresso 2.2.2 с поддержкой библиотеки 24.1.1?

@RunWith(AndroidJUnit4.class) 
@MediumTest 
public class MainActivityTest { 

    @Rule 
    public ActivityTestRule<MainActivity> mainActivityActivityTestRule = new ActivityTestRule<MainActivity>(MainActivity.class); 

    @Test 
    public void buttonShouldBePresent(){ 
     Intents.init(); 
     onView(withId(R.id.button)).perform(click()); 
     intended(hasComponent(SecondActivity.class.getName())); 
    } 


} 

У меня есть эта зависимость:

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:24.1.1' 
    compile 'com.android.support:recyclerview-v7:24.1.1' 
    compile 'com.android.support:cardview-v7:24.1.1' 
    compile 'com.android.support:preference-v7:24.1.1' 
    compile 'com.android.support:design:24.1.1' 

    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' 
    androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.2' 
    androidTestCompile 'com.android.support.test:runner:0.5' 

} 

я получаю эту ошибку:

Error:Conflict with dependency 'com.android.support:support-annotations'. Resolved versions for app (24.1.1) and test app (23.1.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details. 

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

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 

    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' 
    androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.2' 
    androidTestCompile 'com.android.support.test:runner:0.5' 

} 

allprojects { 
    repositories { 
     jcenter() 
    } 
    configurations.all { 
     resolutionStrategy.force('com.android.support:support-annotations:23.1.1') 
    } 
} 

Я могу импортировать более раннюю версию, но 2 причины, из-за которых я не могу использовать более раннюю версию.

  1. Я использую TextInputEditText, который не доступен в более ранней версии

  2. требование проекта

    • Android Студия 2.1+
    • Android SDK Platform-инструменты 24+
    • Android SDK Инструменты 25+
    • SDK Build Tools 24.0.0
    • Android Поддержка Repository 34+
    • Android SDK Platform 24

Как я могу решить эту проблему без снижения версии библиотеки поддержки?

+0

Проверить этот вопрос: http://stackoverflow.com/questions/33317555/conflict-with-dependency -COM-андроид-ПоддержкаПоддержка-аннотаций-разрешенная-версия/33318482 # 33318482 –

ответ

1

Исключено support-annotations от Espresso.

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 

Вы не можете смешивать поддержки версии библиотеки (например, 24.xx все с 23.1.1 support-annotations так удалить это:

configurations.all { 
    resolutionStrategy.force('com.android.support:support-annotations:23.1.1') 
} 

Pro совет:

design зависит от appcompat-v7 и recyclerview-v7 так что вам не нужно указывать их.

0

Есть два решения, которые могут быть исправлены:

  • Самый простой способ будет включать в своих зависимостей эту строку:

    com.android.support:support-annotations:24.1 androidTestCompile».1'

и удалить это:

configurations.all { 
    resolutionStrategy.force('com.android.support:support-annotations:23.1.1') 
} 
  • Другой способ исключитьandroid:support:annotations LIBS:

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
        module: 'support-annotations' 
    }) 
    

и удалить это:

configurations.all { 
    resolutionStrategy.force('com.android.support:support-annotations:23.1.1') 
} 

Espresso и все артефакты, как web или intents используются библиотеки Android Поддержка в версии 23.1.1 и старше (espresso-contrib)

Обратите внимание, что последняя версия Android библиотеки поддержки уже 24.2.0, не 24.1.1.

Надеется, что это поможет

1

Вы можете заставить библиотеку аннотаций в тесте с использованием:

androidTestCompile 'com.android.support:support-annotations:24.1.1' 

 Смежные вопросы

  • Нет связанных вопросов^_^