ui test에서 mockito-kotlin 라이브러리와 dex-inline 라이브러리를 사용할 때 발생하는 이슈
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) ...
원인 및 해결 방안
AGP 3.6에 도입된 기본 라이브러리가 페이지가 정렬되고 압축되지 않은 상태로 패키징 됩니다. 이로 인해 앱이 JVMTI에 연결하는데 필요한 기본 라이브러리를 찾을 수 없게 된다.
현재 해결 방법은 androidTest의 하위에 manifest 파일을 추가해주고 android:extractNativeLibs="true" 플래그를 사용해서 테스트 APK에 대해 해당 기능을 해제하면 된다.
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) ...
원인 및 해결 방안
AGP 3.6에 도입된 기본 라이브러리가 페이지가 정렬되고 압축되지 않은 상태로 패키징 됩니다. 이로 인해 앱이 JVMTI에 연결하는데 필요한 기본 라이브러리를 찾을 수 없게 된다.
현재 해결 방법은 androidTest의 하위에 manifest 파일을 추가해주고
android:extractNativeLibs="true"
플래그를 사용해서 테스트 APK에 대해 해당 기능을 해제하면 된다.