У меня есть библиотека Android, где есть база данных комнат.
При добавлении модульных тестов на DAO я превысил предел dex.
Запустив тесты приборов, я получаю
FATAL EXCEPTION: main
Process: com.a.b.test, PID: 6725
java.lang.RuntimeException: Unable to instantiate instrumentation ComponentInfo{com.a.b.test/androidx.test.runner.AndroidJUnitRunner}: java.lang.ClassNotFoundException: Didn't find class "androidx.test.runner.AndroidJUnitRunner" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.a.b.test-2/base.apk"],nativeLibraryDirectories=[/data/app/com.a.b.test-2/lib/arm64, /system/lib64, /vendor/lib64]]
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5815)
at android.app.ActivityThread.-wrap3(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1699)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.test.runner.AndroidJUnitRunner" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/a.b.test-2/base.apk"],nativeLibraryDirectories=[/data/app/com.a.b.test-2/lib/arm64, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5813)
это библиотека библиотеки:
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion android_sdk_versions.compile
defaultConfig {
minSdkVersion 19
targetSdkVersion 28
multiDexEnabled true
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
versionCode 1
versionName "1.0.0"
consumerProguardFiles 'proguard-lib-rules.txt'
defaultPublishConfig "release"
}
buildTypes {
debug {
minifyEnabled false
}
release {
minifyEnabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
implementation ....
implementation ....
implementation ....
androidTestImplementation 'androidx.multidex:multidex-instrumentation:2.0.0'
androidTestImplementation 'junit:junit:4.12'
androidTestImplementation "androidx.test.ext:junit:1.1.0"
androidTestImplementation "androidx.room:room-testing:2.1.0-alpha06"
}
task sourceJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier "source"
}
publishing {
publications {
msdk(MavenPublication) {
//stuff
}
}
repositories {
maven {
url "${System.env.HOME}/.m2/repository"
}
}
}
как я могу запустить свои контрольно-измерительные приборы в этой библиотеке?
Сама библиотека не превышает лимит dex, также учитывая, что публикация оптимизирована через proguard.