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'
}
我最近搬到了 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'
}