解析Android中的LinkedList时的java.lang.AbstractMethodError

ale*_*.tu 7 java android mockito dexmaker android-instrumentation

我想窥探android中的Linkedlist.

List list = new LinkedList();
List spyData = Mockito.spy(list);
spyData.add("xxxx");
Run Code Online (Sandbox Code Playgroud)

但是,发生了异常.

java.lang.AbstractMethodError: abstract method "boolean org.mockito.internal.invocation.AbstractAwareMethod.isAbstract()"
    at     org.mockito.internal.invocation.InvocationImpl.callRealMethod(InvocationImpl.java:109)
    at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:41)
    at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:93)
    at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)
    at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:38)
    at com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke(InvocationHandlerAdapter.java:49)
    at LinkedList_Proxy.add(LinkedList_Proxy.generated)
    at com.app.test.testmethod(mytest.java:202)
    at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
    at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
    at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
    at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1858)
Run Code Online (Sandbox Code Playgroud)

libs的依赖关系是

dexmaker-1.2.jar
dexmaker-mockito-1.2.jar
mockito-core-1.10.19.jar
Run Code Online (Sandbox Code Playgroud)

即使我更新mockito-core-1.10.19.jarmockito-core-2.0.31-beta.jar,

问题依然存在.

但是Mockito.mock(Linkedlist.class)没关系,我对这个问题没有任何想法.

谢谢.

ale*_*.tu 9

我刚刚找到了解决问题的另一种方法.

对于dexmaker 1.2来说这是一个问题,我们应该升级到dexmaker 1.4,dexmaker-mockito 1.4并包含dexmaker-dx-1.4.

所以依赖是

dexmaker-dx-1.4.jar
dexmaker-1.4.jar
dexmaker-mockito-1.4.jar
mockito-core-1.10.19.jar
Run Code Online (Sandbox Code Playgroud)

  • 我使用gradle'com.crittercism.dexmaker:dexmaker:1.4'等等. (4认同)

raj*_* ks 7

可能是mockito 1.10和dexmaker 1.2之间的问题,你能尝试强制mockito 1.9.5,看看是否修复了它?

http://code.google.com/p/dexmaker/issues/detail?id=43