Ошибка после сборки инструментальных тестов с плагином com.android.test - PullRequest
0 голосов
/ 28 февраля 2019

В последнее время я пытаюсь изменить мультимодульное приложение для Android, чтобы использовать новый плагин com.android.dynamic-feature.Частично это изменение выводит мои инструментальные тесты из базового модуля и позволяет им тестировать несколько функций.Плагин com.android.test , казалось, позволил мне сделать именно это.

Я должен был заметить, что тот же тест, который отлично работает при сборке из набора androidTest источника (используя app:assembleDebugAndroidTest) вызывает странную ошибку при сборке из плагина com.android.test (используя app-tests:assemble).В частности, существует проблема с AndroidX AppCompat, когда тест запускает Activity:

Caused by: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.
    at androidx.appcompat.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:756)
    at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:196)
    at androidx.appcompat.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:86)
    at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:260)
    at androidx.appcompat.app.AppCompatDelegate.create(AppCompatDelegate.java:182)
    at androidx.appcompat.app.AppCompatActivity.getDelegate(AppCompatActivity.java:520)
    at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
    at biz.laenger.android.foo.app.presentation.main.MainActivity.onCreate(MainActivity.kt:28)
    at android.app.Activity.performCreate(Activity.java:7009)
    at android.app.Activity.performCreate(Activity.java:7000)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
    at androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:674)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
    ... 9 more

Я создал этот минимальный образец проект, где проблема может быть воспроизведена (шаги в readme).

Я распознал ошибку, указанную выше, когда возникла реальная проблема с темой.Тем не менее, тема установлена ​​правильно, и создание Activity отлично работает во время «обычных» инструментальных тестов и при ручном запуске приложения.Приложение и тесты выполняются на устройстве API 28.

При настройке модуля :app-tests я следовал инструкциям и получил config :

apply plugin: 'com.android.test'

android {
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion

    defaultConfig {
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion

        testApplicationId 'biz.laenger.android.foo.app.test'
        testInstrumentationRunner 'biz.laenger.android.foo.app.FooTestApplicationRunner'
    }

    targetProjectPath ':app'
}

Я также сравнил оба тестовых APK из «обычных» инструментальных тестов и из com.android.test и заметил следующее:

  • Манифесты выглядят почти одинаково
  • com.android.test APK содержит гораздо больше классов, включая большинство / все :app зависимостей.Это кажется ненужным.

Кто-нибудь сталкивался с этой проблемой или имеет решение этой проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...