2017-03-02 6 views
0

。私が新しいバージョンを走らせれば、すべて正常に動作します。のNoClassDefFoundError ObjenesisStd 19

03-01 20:26:18.781 2878-2878/? E/MonitoringInstrumentation: Exception encountered by: Thread[main,5,main]. Dumping thread state to outputs and pining for the fjords. java.lang.NoClassDefFoundError: org.objenesis.ObjenesisStd at org.mockito.internal.creation.jmock.ClassImposterizer.(ClassImposterizer.java:36) at org.mockito.internal.creation.jmock.ClassImposterizer.(ClassImposterizer.java:29) at org.mockito.internal.util.MockCreationValidator.isTypeMockable(MockCreationValidator.java:17) at org.mockito.internal.util.MockCreationValidator.validateType(MockCreationValidator.java:21) at org.mockito.internal.creation.MockSettingsImpl.validatedSettings(MockSettingsImpl.java:133) at org.mockito.internal.creation.MockSettingsImpl.confirm(MockSettingsImpl.java:127) at org.mockito.internal.MockitoCore.mock(MockitoCore.java:50) at org.mockito.Mockito.mock(Mockito.java:1243) at org.mockito.Mockito.mock(Mockito.java:1120)

問題は、この行です:

java.lang.NoClassDefFoundError: org.objenesis.ObjenesisStd

私のアプリがマルチDEXである、と私はandroidTestCompileためdexmaker-mockitoを使用しています。私はこれが古いAPIでしか壊れない理由を完全に失っています。これは、プロジェクトに別のモジュールを追加したときに起きました。これは、mockitoに依存しない純粋なJavaモジュールです。

答えて

0

この例外(ClassNotFoundExceptionが)は、実行時に満たされていない依存関係について説明します:JVMは、クラスをロードする必要があります。クラスパスには存在しません。ここで

それはObjenesisを必要とMockitoです。通常、ライブラリはMavenのようなシステムで自動的に引っ張られ、Mockitoに適切な依存関係が与えられます。

+0

ObjenesisはandroidTestCompileのための依存関係ツリー内のリストであるとき、I出力のGradleの依存関係を経由して。本当に奇妙なのは、これはAndroid API v19以降のデバイスでのみ発生するということです。 –