2017-06-02 5 views
0

J'ai une méthode IllegalStateException dans onCreate() lorsque j'appelle setContentView().Exception d'état non valide sur setContentView

L'exception se produit sur certains périphériques spécifiques. Surtout, sur les appareils Android version 4.4. Fonctionne bien sur d'autres appareils.

onCreate():

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    viewPager = (ViewPager)findViewById(R.id.viewpager); 
    tabLayout = (TabLayout)findViewById(R.id.sliding_tabs); 

    CategoryAdapter categoryAdapter = new CategoryAdapter(this, getSupportFragmentManager()); 
} 

Mise en page:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

<include 
    layout="@layout/app_bar_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    app:headerLayout="@layout/nav_header_main" 
    app:menu="@menu/activity_main_drawer"/> 

</android.support.v4.widget.DrawerLayout> 

Trace de la pile:

java.lang.RuntimeException: 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2404) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464) 
at android.app.ActivityThread.access$900(ActivityThread.java:172) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:146) 
at android.app.ActivityThread.main(ActivityThread.java:5653) 
at java.lang.reflect.Method.invokeNative(Native Method:0) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at 


com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run 
(ZygoteInit.java:1291) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
at dalvik.system.NativeStart.main(Native Method:0) 
Caused by: java.lang.IllegalStateException: 
at 

android.support.v7.app.AppCompatDelegateImplV9.createSubDecor 
(AppCompatDelegateImplV9.java:359) 
at 
android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor 
(AppCompatDelegateImplV9.java:328) 
at 
android.support.v7.app.AppCompatDelegateImplV9.setContentView 
(AppCompatDelegateImplV9.java:289) 
at android.support.v7.app.AppCompatActivity.setContentView 
(AppCompatActivity.java:140) 
at easyapps.com.HomeActivity.onCreate(HomeActivity.java:138) 
at android.app.Activity.performCreate(Activity.java:5541) 
at android.app.Instrumentation.callActivityOnCreate 
(Instrumentation.java:1093) 
at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2368) 
+2

Veuillez éditer votre question et fournir un [mcve]. Cela inclurait la trace complète de la pile Java, le code Java où vous appelez 'setContentView()', et la ressource de mise en page 'activity_main'. – CommonsWare

Répondre

0

J'ai fait face en est poursuivre mais je le résoudre en mettant à jour buildToolsVersion "25.0.2" et compile 'com.android.support:appcompat-v7:25.3.1' dans build.gradlle.