Skip to content

Could not init mockmaker InlineStaticMockMaker neither InlineDexmakerMockMakerΒ #164

@GianpaMX

Description

@GianpaMX

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)
        ...

adb logcat

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,

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions