報錯:You need to use a Theme.AppCompat theme (or descendant) with this activity.

来源:http://www.cnblogs.com/wyx-xyz/archive/2016/12/30/6235469.html
-Advertisement-
Play Games

學習 Activity 生命周期時希望通過 Dialog 主題測試 onPause() 和 onStop() 的區別。 點擊按鈕跳轉 Activity 時報錯: 找到最有用的一句話,說明所使用的 theme 和當前 Activity 不匹配。 AndroidManifest.xml 中 activi ...


學習 Activity 生命周期時希望通過 Dialog 主題測試 onPause() 和 onStop() 的區別,點擊按鈕跳轉 Activity 時報錯:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.activitylifecycletest, PID: 2920
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.activitylifecycletest/com.example.activitylifecycletest.DialogActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
                      at android.app.ActivityThread.-wrap12(ActivityThread.java)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6077)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
                   Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                      at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:347)
                      at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:316)
                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:281)
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                      at com.example.activitylifecycletest.DialogActivity.onCreate(DialogActivity.java:11)
                      at android.app.Activity.performCreate(Activity.java:6664)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
                      at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:154) 
                      at android.app.ActivityThread.main(ActivityThread.java:6077) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

找到最有用的一句話,說明所使用的 theme 和當前 Activity 不匹配:

You need to use a Theme.AppCompat theme (or descendant) with this activity.

AndroidManifest.xml 中 activity 配置如下:

1 <activity
2     android:name=".DialogActivity"
3     android:theme="@android:style/Theme.Dialog">
4 </activity>

根據報錯提示改為 AppCompat 主題即可:

1 <activity
2     android:name=".DialogActivity"
3     android:theme="@style/Theme.AppCompat.Dialog">
4 </activity>

查看 java 代碼後發現我的 Activity 繼承 AppCompatActivity 類。在 Android Studio 中創建 Activity 時,如果勾選了 Backwards Compatibility(AppCompat) 選項,所創建的 Activity 會繼承 AppCompatActivity 而不是 Activity,此時需要使用對應的 AppCompat 主題。

java 代碼:

 1 import android.support.v7.app.AppCompatActivity;
 2 import android.os.Bundle;
 3 
 4 public class DialogActivity extends AppCompatActivity {
 5 
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         setContentView(R.layout.activity_dialog);
10     }
11 
12 }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 函數和作用域是JavaScript的重要組成部分,我們在使用JavaScript編寫程式的過程中經常要用到這兩部分內容,作為初學者,我經常有困惑,藉助寫此博文來鞏固下之前學習的內容。 (一)JavaScript函數 JavaScript函數是指一個特定代碼塊,可能包含多條語句,可以通過名字來供其他語 ...
  • 有沒有覺得瀏覽器自帶的原始滾動條很不美觀,同時也有看到很多網站的自定義滾動條顯得高端,就連chrome32.0開發板都拋棄了原始的滾動條,美觀多了。那webkit瀏覽器是如何自定義滾動條的呢? 前言 webkit支持擁有overflow屬性的區域,列表框,下拉菜單,textarea的滾動條自定義樣式 ...
  • 一、CSS Sprite(雪碧圖|精靈圖)指什麼? 有什麼作用? CSS雪碧 即CSS Sprite,也有人叫它CSS精靈,是一種CSS圖像合併技術,該方法是將小圖像和背景圖片合併到一張圖片上,然後利用css的背景定位來顯示的圖片部分。 作用: 減少載入網頁圖片時對伺服器的請求次數; 提高頁面的載入 ...
  • 一般事件 事件 瀏覽器支持 描述 onClick IE3|N2|O3 滑鼠點擊事件,多用在某個對象控制的範圍內的滑鼠點擊 onDblClick IE4|N4|O 滑鼠雙擊事件 onMouseDown IE4|N4|O 滑鼠上的按鈕被按下了 onMouseUp IE4|N4|O 滑鼠按下後,鬆開時激發 ...
  • 小程式裡面的轉換時間格式代碼 其實我最看重的是 ...
  • 屬於轉載 http status code:200:成功,伺服器已成功處理了請求,通常這表示伺服器提供了請求的網頁 404:未找到,伺服器未找到 201-206都表示伺服器成功處理了請求的狀態代碼,說明網頁可以正常訪問。 200(成功) 伺服器已成功處理了請求。通常,這表示伺服器提供了請求的網頁。 ...
  • 現在的css3真是強大,之前很多動畫都是用jq來實現,但是css3製作的動畫要比jq實現起來簡單很多,今天呢,我自己也寫了一個css旋轉動畫和大家分享。效果如下麵的圖片 思路:1.製作之前呢,我們先來整理一下思路,這個圓軸軌跡上一共有八個圓。 仔細看的話,你會發現一個規律,那就是一個月是360度的, ...
  • 前言 昨日,我請了一天假去考科目三,結果第一把掛在了沒完全關閉燈光上,第二把掛在轉彎時沒有觀察後方車輛,當聽到師傅一句“下去”的時候,我那是悲痛的面紅耳赤,這讓我很鬱悶,晚上也就不想回去上班了,回家後仍然有點低沉,在這種情況下,不寫點毒雞湯,好像已經不能好好的調節心情了,看看時間年底了,便寫寫今年的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...