膨胀活动内容在仪器中失败

时间:2016-01-14 14:21:58

标签: android android-testing android-espresso android-instrumentation

我正在尝试在项目中设置浓缩咖啡 我在Android Studio(1.5.1)中创建了一个新的空活动项目 它运行没有问题

将espresso配置添加到项目和测试类中。
在运行测试时我正在

  android.content.res.Resources$NotFoundException: Resource ID #0x7f030015
  at android.content.res.Resources.getValue(Resources.java:1266)
  at android.content.res.Resources.loadXmlResourceParser(Resources.java:2649)
  at android.content.res.Resources.getLayout(Resources.java:1082)
  at android.view.LayoutInflater.inflate(LayoutInflater.java:412)
  at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
  at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:358)
  at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:279)
  at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)
  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
  at com.adi.MainActivity.onCreate(MainActivity.java:11)
  at android.app.Activity.performCreate(Activity.java:5990)
  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
  at android.support.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:494)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
  at android.app.ActivityThread.access$800(ActivityThread.java:151)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:135)
  at android.app.ActivityThread.main(ActivityThread.java:5254)
  at java.lang.reflect.Method.invoke(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

BTW ID用于工具栏

测试类是

@RunWith(AndroidJUnit4.class)
public class MainActivityTest {

   @Rule
   public ActivityTestRule<MainActivity> mActivityRule =
        new ActivityTestRule<>(MainActivity.class);

   @Test
   public void test(){}
}

gradle.build是

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.adi"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'

    androidTestCompile 'com.android.support.test:runner:0.3'
    androidTestCompile 'com.android.support.test:rules:0.3'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2'
    androidTestCompile 'com.android.support:appcompat-v7:23.1.1'
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我已经在StackOverflow网站上发现了类似的问题。看看这个Chris Banes的解释和解决方案:

  

AppCompat现在对主题窗口标志的期望更加严格,   更接近于从框架中获得的内容。

     

这背后的主要原因是支持   AppCompatDialogs   我们也在这个版本中添加了。他们大量使用   windowNoTitle标志,AppCompat以前没有付出太多代价   注意。

     

因此,要解决您的问题,您有两种选择:

     

简单的方法是使用Theme.AppCompat.NoActionBar作为您的   父主题。这将永远是正确的。

     

如果你不能这样做(也许你需要支持行动吧和   没有操作栏),您应该执行以下操作:

<style name="MyTheme" parent="Theme.AppCompat">
    ...
</style>

<style name="MyTheme.NoActionBar">
    <!-- Both of these are needed -->
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
     

你现在应该回到正轨。

     

来自:Upgraded to AppCompat v22.1.0 and now getting IllegalArgumentException: AppCompat does not support the current theme features

正如您所注意到的,您不需要从build.gradle文件support.v7...依赖项中删除。只需在Activity主题中进行一些更改。

编辑:还将buildToolsVersion "22.0.1"更改为23.0.2版本。

希望有所帮助