剛在給項目加倒計時廣告時遇到一個小錯誤,儘管錯誤不是很難解決,但我想分享出來,希望大家不要遇到跟我一樣的錯誤。
錯誤是:
Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
我在的項目中有一個抽屜效果,這個抽屜效果是自動生成的,抽屜效果的主界面是通過引用其他子界面來實現搭建的,
系統會給你的清單文件自動生成這樣一串代碼,
<activity android:name=".MainActivity" android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
你自己寫倒計時廣告,每次打開應用的時廣告頁面的優先級永遠大於主界面,所以有些人會有這樣的習慣,直接換掉一個名字
錯誤代碼如下:
<activity android:name=".MainActivity" >
</activity>
<activity android:name=".StartMaintivity" android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
清單文件的脾氣是很大的,你加上去它不報錯,但是當你運行的時你就會報錯,而且報的錯誤不是很明顯,初學者的人就遇到麻煩了。
正確的處理方式是:
<activity android:name=".MainActivity" android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<activity android:name=".StartMaintivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
記住:如果你的抽屜效果是引用的,你就必須在清單文件中對應的Activity中加入引用的代碼,
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar"
當然啦,這個錯誤並非僅僅一個抽屜效果會出現,其他的所有XML文件通過引用的沒有在清單文件中加入引用代碼,都會報錯,至於具體報什麼錯,還希望讀者親測。
這個是小錯誤,分享出來是希望能解決那些新手的疑惑,同時做一個記錄,希望勿噴!!!!!