2017-06-02 68 views
0

當調用setContentView()時,我在onCreate()方法中有IllegalStateExceptionsetContentView上的非法狀態異常

在某些特定設備上發生異常。大多數情況下,在Android 4.4版設備上。在其他設備上正常工作。

的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()); 
} 

佈局:

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

堆棧跟蹤:

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

請編輯您的問題並提供[mcve]。這將包括完整的Java堆棧跟蹤,您調用'setContentView()'的Java代碼和'activity_main'佈局資源。 – CommonsWare

回答

0

我所面臨同樣是起訴,但我解決它通過更新buildToolsVersion "25.0.2"compile 'com.android.support:appcompat-v7:25.3.1'在build.gradlle。