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

简介: 解决You need to use a Theme.AppCompat theme (or descendant) with this activity

错误信息

2019-07-24 15:35:40.385 18490-18490/com.adojayfan.rntest E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.adojayfan.rntest, PID: 18490
    java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
        at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:696)
        at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:659)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:552)
        at androidx.appcompat.app.AppCompatDialog.setContentView(AppCompatDialog.java:95)
        at androidx.appcompat.app.AlertController.installContent(AlertController.java:232)
        at androidx.appcompat.app.AlertDialog.onCreate(AlertDialog.java:279)
        at android.app.Dialog.dispatchOnCreate(Dialog.java:407)
        at android.app.Dialog.show(Dialog.java:302)
        at com.adojayfan.rntest.utils.UiTools.showAlertDialog(UiTools.java:266)
        at com.adojayfan.rntest.MainActivity$MyWebChromeClient.onJsConfirm(MainActivity.java:116)
        at com.tencent.smtt.sdk.f.onJsConfirm(SmttWebChromeClient.java:149)
        at com.tencent.tbs.core.webkit.tencent.TencentWebChromeClient.onJsConfirm(TbsJavaCore:159)
        at android.webview.chromium.WebViewContentsClientAdapter.handleJsConfirm(TbsJavaCore:889)
        at org.chromium.android_webview.AwContentsClientBridge$4.run(TbsJavaCore:260)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:201)
        at android.app.ActivityThread.main(ActivityThread.java:6823)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

解决方式

  1. 首先查看当前Activity的主题。如果Activity继承的是AppCompatActivity,那么主题必须继承自Theme.AppCompat。
<activity
            android:name=".MainActivity"
            android:configChanges="orientation|screenSize"
            android:hardwareAccelerated="true"
            android:theme="@style/Theme.AppCompat.Light">
  1. 如果确定Activity的主题没问题,那可能是因为使用Dialog时传入的Context不对。
    Dialog需要的Context不能使用getApplicationContext()。
//错误
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
//正确
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
相关文章
|
开发工具 Android开发 git
解决Android AAPT: error: resource android:attr/lStar not found. 问题
解决Android AAPT: error: resource android:attr/lStar not found. 问题
1520 0
|
开发工具 Android开发
细说 AppCompat 主题引发的坑:You need to use a Theme.AppCompat theme with this activity!
细说 AppCompat 主题引发的坑:You need to use a Theme.AppCompat theme with this activity!
细说 AppCompat 主题引发的坑:You need to use a Theme.AppCompat theme with this activity!
|
Dart 开发工具 Android开发
快速集成 Flutter Shorebird 热更新
Flutter Shorebird 是一种云端代码推送服务,可以让开发者在几分钟内集成,无需修改代码即可将更新推送到任何 Dart 代码,支持所有 Android 和 iOS 设备,并符合 App Store 和 Play Store 的规定。Shorebird 最大的优点是无代码侵入,快速集成,设计优秀。
1013 2
快速集成 Flutter Shorebird 热更新
|
SQL Oracle 关系型数据库
南大通用GBase 8s 数据库封锁与并发事务调度介绍
南大通用GBase 8s 数据库封锁与并发事务调度介绍
|
UED 开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(背景设置)
在HarmonyOS 5.0中,ArkTS提供了多种背景设置属性,如backgroundColor、backgroundImage、backgroundSize、backgroundPosition和backgroundBlurStyle,允许开发者自定义组件的背景样式,提升应用的视觉效果和用户体验。本文详细解读了这些属性,并提供了示例代码进行说明。
1545 5
|
Android开发 开发者 Kotlin
Android 多进程情况下判断应用是否处于前台或者后台
本文介绍在多进程环境下判断Android应用前后台状态的方法。通过`ActivityManager`和服务信息`RunningAppProcessInfo`可有效检测应用状态,优化资源使用。提供Kotlin代码示例,帮助开发者轻松集成。
1385 8
|
安全 Java API
【Java】已解决java.lang.SecurityException异常
【Java】已解决java.lang.SecurityException异常
2590 0
|
消息中间件 小程序 Java
暹罗点餐开源啦,一款java多门店点餐系统-连锁门店如蜜雪冰城瑞幸咖啡
暹罗点餐是一款Java餐饮点餐系统,适用于多门店的连锁品牌,对标蜜雪冰城、瑞幸咖啡。系统包含用户端、商家端、配送端以及总管理后台; * 前端使用uni-app开发,可打包部署到微信小程序、APP、H5 * Web端使用vue + Element开发 * 服务端使用java语言开发,技术栈:Spring Boot + Redis + RocketMQ + WebSocket + ElasticSearch + ELK + SpringBoot Admin
1398 1
暹罗点餐开源啦,一款java多门店点餐系统-连锁门店如蜜雪冰城瑞幸咖啡
|
XML 缓存 Java
Android App开发之利用Glide实现图片的三级缓存Cache讲解及实战(附源码 超详细必看 简单易懂)
Android App开发之利用Glide实现图片的三级缓存Cache讲解及实战(附源码 超详细必看 简单易懂)
759 0
|
消息中间件 缓存 安全
android开发,使用kotlin学习消息机制Handler
android开发,使用kotlin学习消息机制Handler
584 0

热门文章

最新文章