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)确实使我的测试再次通过。如果你想回答这个问题,我可以把它标为已回答。干杯