代码之家  ›  专栏  ›  技术社区  ›  laenger

使用“”生成检测后出错com.android.test'插件

  •  0
  • laenger  · 技术社区  · 6 年前

    com.android.dynamic-feature 插件。这一变化的一部分是将我的仪器测试移出基本模块,让它们测试多个特性。这个 com.android.test plugin 似乎能让我做到这一点。

    我不得不注意到,当从 androidTest app:assembleDebugAndroidTest )从中生成时会导致一个奇怪的错误 插件(使用 app-tests:assemble ). 特别是,当测试启动活动时,AndroidX AppCompat有一个问题:

    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
    

    minimal sample 可以复制问题的项目(自述文件中的步骤)。

    配置 :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'
    }
    

    我还比较了“常规”仪器测试和 com.android.test

    • 清单看起来很相似
    • 这个 com.android.test APK包含 远不止这些 :app 依赖关系。这似乎没有必要。

    0 回复  |  直到 6 年前
    推荐文章