我通过AndroidStudio 3.5运行junit测试,但失败 Roboletric创建应用程序实例,并且无法初始化领域。
失败如下,
com.getkeepsafe.relinker.MissingLibraryException: librealm-jni.dylib
at com.getkeepsafe.relinker.ApkLibraryInstaller.installLibrary(ApkLibraryInstaller.java:123)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibraryInternal(ReLinkerInstance.java:180)
at com.getkeepsafe.relinker.ReLinkerInstance.loadLibrary(ReLinkerInstance.java:136)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:70)
at com.getkeepsafe.relinker.ReLinker.loadLibrary(ReLinker.java:57)
at io.realm.internal.RealmCore.loadLibrary(RealmCore.java:60)
at io.realm.Realm.initializeRealm(Realm.java:322)
at io.realm.Realm.init(Realm.java:265)
at com.byron.MyApplication.onCreate(MyApplication.java:157)
at org.robolectric.android.internal.AndroidTestEnvironment.lambda$installAndCreateApplication$0(AndroidTestEnvironment.java:276)
at org.robolectric.util.PerfStatsCollector.measure(PerfStatsCollector.java:75)
build.gradle
android {
defaultConfig {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testOptions.unitTests.returnDefaultValues = true
testOptions.unitTests.includeAndroidResources = true
}
dependencies {
testImplementation 'junit:junit:4.12'
testImplementation 'org.robolectric:robolectric:4.3.1'
testImplementation 'androidx.test:core:1.0.0'
testImplementation 'androidx.test:runner:1.1.0'
testImplementation 'androidx.test:rules:1.1.0'
testImplementation 'org.mockito:mockito-core:1.10.19'
testImplementation 'androidx.test.ext:junit:1.0.0'
testImplementation 'androidx.test.ext:truth:1.0.0'
}
}
gradle.properties
android.useAndroidX=true
android.enableJetifier=true
android.enableUnitTestBinaryResources=true
android.enableSeparateAnnotationProcessing=true
MyApplication.java
public class MyApplication extends Application {
public void onCreate(){
super.onCreate();
Realm.init(this);
}
}