3

我有一个使用谷歌播放服务的项目,特别是地图。该项目运行良好。build.gradle 中的依赖项使用 google 存储库并声明如下

compile 'com.google.android.gms:play-services:3.2.25'

我想使用 gradle-android-test-plugin,所以我配置了它,添加了测试运行器,创建了一个只有 assertTrue(true) 的简单测试并使用 ./gradlew test 运行它

测试因 java.lang.NoClassDefFoundError: com/google/android/gms/maps/model/LatLng 而失败,我猜它在读取清单时尝试加载它失败。这是完整的错误:

java.lang.NoClassDefFoundError: com/google/android/gms/maps/model/LatLng
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2521)
at java.lang.Class.getDeclaredMethod(Class.java:1992)
at org.fest.reflect.method.Invoker.method(Invoker.java:85)
at org.fest.reflect.method.Invoker.lookupInClassHierarchy(Invoker.java:73)
at org.fest.reflect.method.Invoker.createInvoker(Invoker.java:60)
at org.fest.reflect.method.Invoker.newInvoker(Invoker.java:55)
at org.fest.reflect.method.MethodReturnType.in(MethodReturnType.java:66)
at org.robolectric.bytecode.ShadowWrangler.shadowOf(ShadowWrangler.java:416)
at org.robolectric.Robolectric.shadowOf_(Robolectric.java:1077)
at org.robolectric.Robolectric.shadowOf(Robolectric.java:483)
at org.robolectric.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:118)
at org.robolectric.RobolectricTestRunner.setUpApplicationState(RobolectricTestRunner.java:387)
at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:227)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:177)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:80)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:47)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:69)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:355)
at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

引起:java.lang.ClassNotFoundException: com.google.android.gms.maps.model.LatLng at org.robolectric.bytecode.AsmInstrumentingClassLoader.findClass(AsmInstrumentingClassLoader.java:119) at org.robolectric.bytecode.AsmInstrumentingClassLoader.loadClass( AsmInstrumentingClassLoader.java:95) ... 49 更多

我尝试将 google play services 依赖项也添加到 testCompile,但没有运气。我究竟做错了什么?

4

0 回答 0