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
依赖关系。这似乎没有必要。