Skip to content
Joshua Selbo edited this page Apr 20, 2026 · 1 revision

Android Support

Mockito-Kotlin supports Android through the mockito-android extension.

This wiki assumes a standard Gradle project layout.

  • For JVM tests (src/test/), you can use plain Mockito-Kotlin which includes Mockito-Core.
  • For Android instrumented tests (src/androidTest/), add mockito-android as an androidTestImplementation dependency.

Recommended project setup

Version catalog in gradle/libs.versions.toml:

[versions]
mockito = "5.23.0"
mockitoKotlin = "6.3.0"

[libraries]
mockito = { module = "org.mockito:mockito-core", version.ref = "mockito" }
mockito-android = { module = "org.mockito:mockito-android", version.ref = "mockito" }
mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockitoKotlin" }

app/build.gradle.kts:

dependencies {
    testImplementation(libs.mockito.kotlin)
    androidTestImplementation(libs.mockito.android)
}

Note there is currently a limitation in the dexmaker library Mockito-Android uses. You must set android:extractNativeLibs="true" in your androidTest/AndroidManifest.xml for the dexmaker native library to be accessible:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application android:extractNativeLibs="true" />
</manifest>

Important

Use mockito-android 5.23.0 or later - it adds support for mocking non-open marked Kotlin classes. Note this requires an Android API 28 (Android P) or higher emulator or device.

Troubleshooting

java.lang.NullPointerException: Attempt to invoke interface method 'boolean org.mockito.plugins.MockMaker$TypeMockability.mockable()' on a null object reference

This suggests an initialization error in the dexmaker setup. Check the full test runner logs for the real error.

D nativeloader: Load libdexmakerjvmtiagent.so using class loader ns clns-9 (caller=<unknown>): dlopen failed: library "libdexmakerjvmtiagent.so" not found
W e.myapplication: Agent attach failed (result=1) : Unable to dlopen libdexmakerjvmtiagent.so: dlopen failed: library "libdexmakerjvmtiagent.so" not found
...
E MockMakerMultiplexer: Could not init mockmaker com.android.dx.mockito.inline.InlineDexmakerMockMaker
E MockMakerMultiplexer: java.lang.reflect.InvocationTargetException
...
E MockMakerMultiplexer: Caused by: java.io.IOException: Unable to dlopen libdexmakerjvmtiagent.so: dlopen failed: library "libdexmakerjvmtiagent.so" not found

Ensure you added android:extractNativeLibs="true" to your application tag in androidTest/AndroidManifest.xml. See above.

Clone this wiki locally