0

Je suis en train d'installer expresso dans un projet.
Je créé un nouveau projet d'activité vide dans Android Studio (1.5.1)
Il n'a pas de problèmes en cours d'exécutiongonfler le contenu de l'activité échoue dans l'instrumentation

ajouté les configurations d'espresso au projet et une classe de test.
Lors du test, je reçois

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 l'ID est la barre d'outils

La classe de test est

@RunWith(AndroidJUnit4.class) 
public class MainActivityTest { 

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

    @Test 
    public void test(){} 
} 

gradle.build est

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' 
} 

Qu'est-ce que est-ce que je fais mal?

+2

Essayez de supprimer \t 'androidTestCompile « com.android.support: appcompat-v7: 23.1.1'', synchronisation, propre. L'autre code a l'air bien pour moi. – denys

+0

denys, en supprimant cela provoque un conflit entre apk principal et test apk. – Guy

+0

@denys C'est exactement la raison cause mon problème similaire! – Piasy

Répondre

0

J'ai déjà trouvé sur le site StackOverflow un problème similaire. Jetez un oeil à cette explication Chris Banes et solution:

AppCompat est maintenant plus stricte sur ce qu'il attendent dans les drapeaux de fenêtre à thème, correspondant de plus près ce que vous obtiendriez du cadre.

La raison principale derrière ceci est de soutenir AppCompatDialogs que nous avons également ajouté dans cette version. Ils font un usage intensif du drapeau windowNoTitle, que AppCompat auparavant ne payait pas beaucoup attention.

Donc, pour résoudre votre problème, vous avez deux options:

Le plus simple est d'utiliser simplement Theme.AppCompat.NoActionBar comme thème parent . Cela fera toujours la bonne chose.

Si vous ne pouvez pas faire cela bien (vous devez peut-être appuyer la barre d'action et sans barre d'action), vous devez faire ce qui suit:

<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> 

Vous devriez être sur la bonne voie maintenant.

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

Comme vous le remarquerez, vous ne devez supprimer de votre fichier build.gradlesupport.v7... dépendances. Faites simplement quelques changements dans votre thème Activity.

ÉDITION: Modifiez également buildToolsVersion "22.0.1" en version 23.0.2.

espère que cela aide

+0

merci pour la réponse, essayé toutes les suggestions, mais ne fonctionne toujours pas ... en tout cas j'ai besoin de la barre d'action. – Guy