Android Robolectric Resources$NotFoundException:drawable\abc\u ic\u ab\u back\u material.xml来自drawable resource ID

Android Robolectric Resources$NotFoundException:drawable\abc\u ic\u ab\u back\u material.xml来自drawable resource ID,android,robolectric,Android,Robolectric,当我尝试跑步时: Robolectric.setupActivity(MainActivity.class).getSupportFragmentManager() .beginTransaction().add(mapFragment, "" + NavigationCtrl.FRAG_MAP).commit(); Robolectric抛出一个错误: android.content.res.Resources$NotFoundException: File

当我尝试跑步时:

Robolectric.setupActivity(MainActivity.class).getSupportFragmentManager()
                .beginTransaction().add(mapFragment, "" + NavigationCtrl.FRAG_MAP).commit();
Robolectric抛出一个错误:

android.content.res.Resources$NotFoundException: File build\intermediates\res\merged\dev\drawable\abc_ic_ab_back_material.xml from drawable resource ID #0x7f020013
    at android.content.res.Resources.loadDrawable(Resources.java:2091)
    at org.robolectric.util.ReflectionHelpers.callInstanceMethod(ReflectionHelpers.java:195)
    at org.robolectric.internal.Shadow.directlyOn(Shadow.java:57)
    at org.robolectric.shadows.ShadowResources.loadDrawable(ShadowResources.java:225)
    at android.content.res.Resources.loadDrawable(Resources.java)
    at android.content.res.Resources.getDrawable(Resources.java:695)

Caused by: org.xmlpull.v1.XmlPullParserException: XML file build\intermediates\res\merged\dev\drawable\abc_ic_ab_back_material.xml line #-1 (sorry, not yet implemented): invalid drawable tag vector
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:897)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:837)
    at android.content.res.Resources.loadDrawable(Resources.java:2087)
我的其他Robolectric测试运行正常,只有“setupActivity”测试(有几个)

我知道我也可以用
SupportFragmentTestUtil.startFragment(fragment)
启动片段,但我需要传递“tag”变量

有什么想法吗?

解释
材质意味着您的sdk应该更高,或者至少为21,而不是18。 这就是这个错误的原因

解决方案 将
@Config(sdk=18)
更改为
@Config(sdk=21)
或更高版本


它可以工作。

你在测试哪个Android版本?它可以矢量绘制吗?我正在为我的跑步者使用@Config(sdk=18…)。我使用appCompat 24.1.1,并尝试添加“vectorDrawables.useSupportLibrary=true”来构建。gradleMaterial意味着您的sdk应该更高,或者至少是
21
,而不是
18
。这就是原因eror@piotrek1543将@Config(sdk=18)更改为@Config(sdk=21)确实使我的测试再次通过。如果你想回答这个问题,我可以把它标为已回答。干杯