-
Notifications
You must be signed in to change notification settings - Fork 259
Open
Labels
Description
Hello,
I'm having an issue when mocking a class in an App module.
E/MockMakerMultiplexer: Could not init mockmaker com.android.dx.mockito.inline.InlineStaticMockMaker
W/.mockmakerissu: 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
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at com.android.dx.mockito.inline.MockMakerMultiplexer.<clinit>(MockMakerMultiplexer.java:47)
at java.lang.Class.newInstance(Native Method)
...
E/MockMakerMultiplexer: at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2251)
Caused by: java.lang.RuntimeException: Could not initialize inline mock maker.
at com.android.dx.mockito.inline.InlineDexmakerMockMaker.<init>(InlineDexmakerMockMaker.java:180)
... 53 more
Caused by: java.lang.IllegalStateException: Mockito could not self-attach a jvmti agent to the current VM. This feature is required for inline mocking.
at com.android.dx.mockito.inline.InlineDexmakerMockMaker.<clinit>(InlineDexmakerMockMaker.java:112)
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at java.lang.Class.forName(Class.java:379)
at com.android.dx.mockito.inline.MockMakerMultiplexer.<clinit>(MockMakerMultiplexer.java:46)
... 50 more
Caused by: java.io.IOException: Unable to dlopen libdexmakerjvmtiagent.so: dlopen failed: library "libdexmakerjvmtiagent.so" not found
at dalvik.system.VMDebug.nativeAttachAgent(Native Method)
at dalvik.system.VMDebug.attachAgent(VMDebug.java:591)
at android.os.Debug.attachJvmtiAgent(Debug.java:2481)
at com.android.dx.mockito.inline.JvmtiAgent.<init>(JvmtiAgent.java:65)
at com.android.dx.mockito.inline.InlineDexmakerMockMaker.<clinit>(InlineDexmakerMockMaker.java:90)
... 54 more
...
Release: Android 10 10.0.0.196C69Device: HUAWEI ELE-L04
This error occured due to an I/O error during the creation of this agent: java.io.IOException: Unable to dlopen libdexmakerjvmtiagent.so: dlopen failed: library "libdexmakerjvmtiagent.so" not found
Potentially, the current VM does not support the jvmti API correctly
Causing this error:
E/TestRunner: java.lang.NullPointerException: Attempt to invoke interface method 'boolean org.mockito.plugins.MockMaker$TypeMockability.mockable()' on a null object reference
at org.mockito.internal.util.MockCreationValidator.validateType(MockCreationValidator.java:23)
at org.mockito.internal.creation.MockSettingsImpl.validatedSettings(MockSettingsImpl.java:240)
at org.mockito.internal.creation.MockSettingsImpl.build(MockSettingsImpl.java:228)
at org.mockito.internal.MockitoCore.mock(MockitoCore.java:61)
at org.mockito.Mockito.mock(Mockito.java:1907)
at org.mockito.Mockito.mock(Mockito.java:1816)
...
The weird thing is, it works in a Library module.
I created the following project with an app module and a library module to reproduce the issue:
https://github.com/GianpaMX/MockMakerIssue
I'm running theses tests in an Android 10 device (HUAWEI ELE-L04)
This is very similar to #119 and #127
Thank you,
sWift-sai