Robolectric 3.0 与 Android Studio android.view.InflateException

Roboelectric 3.0 with Android Studio android.view.InflateException

我最近搬到了 Roboelectric 3.0,我无法通过一个简单的步骤 运行 测试 运行 以下命令:

@Config(sdk = 18, constants = BuildConfig.class) 
@RunWith(RobolectricGradleTestRunner.class)
public class LegDetailActivityTest {
    @Test public void testThatLegDetailActivityCanBeInjected() {    

        LegDetailsActivity activity =
            Robolectric.buildActivity(LegDetailsActivity.class).create(bundle).get();

        graph.inject(activity);
    }
}

我收到以下错误:

android.view.InflateException: XML file build/intermediates/res/merged/debug/layout/abc_screen_toolbar.xml line #-1 (sorry, not yet implemented): Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:299)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)

我的 activity class 扩展为 AppCompatActivity

我的 build.gradle 有这些依赖项:

  testCompile 'junit:junit:4.12'
  testCompile 'org.easytesting:fest:1.0.16'
  testCompile 'com.squareup:fest-android:1.0.8'
  testCompile 'org.mockito:mockito-all:1.9.5'
  testCompile('org.robolectric:robolectric:3.0') {
    exclude group: 'commons-logging', module: 'commons-logging'
    exclude group: 'org.apache.httpcomponents', module: 'httpclient'
  }
  testCompile('org.robolectric:shadows-support-v4:3.0')

有人遇到过这个问题吗?

问题出在 v4 库的某个地方。我通过在 build.gradle.

中排除 v4 解决了这个问题
 testCompile('org.robolectric:robolectric:3.0') {
    exclude group: 'commons-logging', module: 'commons-logging'
    exclude group: 'org.apache.httpcomponents', module: 'httpclient'
    exclude group: 'com.android.support', module: 'appcompat'
    exclude group: 'com.android.support', module: 'support-v4'
    exclude group: 'com.android.support', module: 'recyclerview-v7'
  }