代码之家  ›  专栏  ›  技术社区  ›  Gabor zudokod

Java语言lang.NoClassDefFoundError:组织/机器人分子/内部/阴影提取器

  •  0
  • Gabor zudokod  · 技术社区  · 7 年前

    使用

    testImplementation 'org.robolectric:shadows-play-services:3.4-rc2'
    testImplementation "org.robolectric:robolectric:3.6.1"
    testImplementation "com.google.android.gms:play-services-auth:$rootProject.ext.googlePlayServicesVersion" // the robolectric shadow bogusly needs this
    

    我正在尝试:

    import com.google.android.gms.common.ConnectionResult;
    import com.google.android.gms.common.GoogleApiAvailability;
    
    import org.junit.Before;
    import org.junit.runner.RunWith;
    import org.robolectric.RobolectricTestRunner;
    import org.robolectric.annotation.Config;
    import org.robolectric.shadows.gms.Shadows;
    import org.robolectric.shadows.gms.common.ShadowGoogleApiAvailability;
    
    @RunWith(RobolectricTestRunner.class)
    @Config(manifest = Config.NONE, shadows = {ShadowGoogleApiAvailability.class})
    public abstract class BaseTest {
            @Before
            public void setUp() {
                    final ShadowGoogleApiAvailability shadowGoogleApiAvailability
                            = Shadows.shadowOf(GoogleApiAvailability.getInstance());
                    final int expectedCode = ConnectionResult.SUCCESS;
                    shadowGoogleApiAvailability.setIsGooglePlayServicesAvailable(expectedCode);
            }
    }
    

    然而,我的测试失败了,出现了一个奇怪的错误:

    java.lang.NoClassDefFoundError: org/robolectric/internal/ShadowExtractor
        at org.robolectric.shadows.gms.Shadows.shadowOf(Shadows.java:37)
        at ......BaseTest.setUp(BaseTest.java:19)
    

    我做错了什么,如何修复?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Gabor zudokod    7 年前

    Google Play Services shadow已重命名为

    testImplementation 'org.robolectric:shadows-playservices:3.6.1'
    

    根据 https://github.com/robolectric/robolectric/issues/3489 这就是Robolectric 3.5应该使用的。x、 请注意,官方文件- http://robolectric.org/using-add-on-modules/ -尚未更新以反映此更改。

        2
  •  0
  •   Napster    7 年前

    这已被弃用并删除。切换到 Shadows.extract() . 请参阅此问题

    https://github.com/robolectric/robolectric/issues/3339