当前位置: 首页 > 知识库问答 >
问题:

java非法状态异常android.support.v7.app.AppCompatDelegateImplV7.createSubDecor

汪阳飇
2023-03-14

我的应用程序处于生产状态,它支持从API 8到23。我最近更新了应用程序,使其具有使用导航抽屉的材料设计。此版本支持从 14 到 23。

该应用程序在API 21[Lollipop]及以上版本上运行良好,但有4.4“java illegalstateexception android.support.v7.app.AppCompatDelegateImplV7.createSubDecor”的崩溃报告

我的风格。xml是

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

我的style.xml-v21是

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

清单文件是

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".View.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

主要活动延伸,

公共类MainEvent扩展AppCompatEvent实现NavigationView.OnNavigationItemSelectedListener{

日志cat错误如下

java.lang.运行时异常: 无法启动活动 组件信息{com.XYZ/com.XYZ.View.MainActivity}: java.lang.非法状态异常: 您需要将主题.AppCompat 主题(或后代)与此活动一起使用。在 android.app.ActivityThread.perform 启动活动(活动线程.java:2200) at android.app.活动线程.handle 启动活动(活动线程.java:2249) 在 android.app.活动线程.访问$800(活动线程.java:141) 在 android.app.活动线程$H.handleMessage(活动线程.java:1212) 在 android.os.处理程序.dispatch消息(处理程序.java:102) 在 android.os.Looper.loop(Looper.java:136) 在 android.app.活动线程主(活动线程.java:5113) 在 android.os.Looper.looper.loop(Looper.java:136) 在 android.os.活动线程.java:5113) 在 android.os.Looper.loop(Looper.java:136) 在 android.os.FixThread.main(活动线程.java:5113) 在 android.os.Handler.dispatch 消息(处理程序.java:102) 在 android.os.Looper.loop(循环器.java:136) 在 android.os.活动线程.java:5113) 在 android.os.Looper.centerjava.lang.reflect.Method.invokeNative(原生方法) 在 java.lang.reflect.Method.invoke(方法.java:515) 在 网站.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(受精卵输入.java:793) 在 dalvik.system.java.nativeStart.main(原生方法) 由: java.lang.非法状态异常: 您需要使用主题.AppCompat 主题(或后代)与此活动。at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:310) at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:279) at android.support.v7.app.AppCompatlegateImplV7.setEntentView(AppCompatlegateImplV7.java:253) at android.support.v7.app.appCompatActivity.setContentView(AppCompatActivity.java:109) 在 com.新浪网.查看主要活动在Android.app.活动.on创建(主要活动.java:62) 在 android.app.活动.perform创建(活动.java:5248) 在 android.app.仪器仪表.调用活动在Android创建(检测.java:1087) .app.活动线程.perform启动活动(活动线程.java:2164) ...另外 11

任何有关如何处理此错误的帮助将不胜感激。我已经查看了此处列出的类似问题案例,但无法解决此问题。

>

  • API 中的导航抽屉是否可能小于 21?

    style.xml应该做哪些改变来支持向后兼容?

    我试过android:theme="@style/Theme。AppCompat.NoActionBar "

    谢谢你提前抽出时间。

  • 共有1个答案

    禹正阳
    2023-03-14

    问题已修复。创建了一个示例抽屉菜单项目-检查时发现我的项目和示例中的一些项目有差异。匹配style.xml和自定义content_main.xml.现在抽屉菜单在14上也可以正常工作。

    修改的样式.xml

        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
    
        <style name="AppTheme.NoActionBar">
            <item name="windowActionBar">false</item>
            <item name="windowNoTitle">true</item>
        </style>
    
        <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
    
        <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
    
     类似资料:
    • 我正在尝试使用下面的快速加载API 连接…等是完美的。 我确切地知道它在哪里失败 例外情况是 < code >线程“main”Java . lang . illegalstateexception中出现异常:示例失败。 这是我试图上传的表格。它是格式,当我通过记事本打开它时,它看起来像这样 为什么我会得到这个异常?我该如何改进?据我理解问题是< code > pstmtfld . setascii

    • 我正在尝试实现线程,其中一个线程生成随机数,而另一个线程等待,一旦它生成随机数,它应该通知并等待另一个线程也这样做。我收到了非法的监控状态异常,请帮我指出我的错误。

    • 问题内容: 如何将轮询线程传递给另一个线程进行处理。程序执行在具有主方法和线程池的控制器类中: 主类控制器 具有轮询类的线程的方法 具有proc类的线程的方法 轮询类和控制器类 我的任务和问题是: 1.控制器应同时处理轮询器和处理器线程,并且应仅调用轮询器和处理器线程 2.现在我的问题是如何使轮询线程等待3秒并并行通知处理器。 我得到如下错误: 这里如何实现异步处理? 问题答案: 你需要阅读的东西

    • 问题内容: 这是我的用法- 另外,我在http GET周围放置了一个finally块- 这是我的堆栈跟踪- 我正在使用Quartz计划监视Http端点的工作。这是我的连接池配置 Maven依赖..工件版本 编辑 -好吧,通过不关闭finally块中的CloseableHttpClient,问题解决了。有人能说出为什么这样吗? 如果关闭客户端,为什么连接池会关闭? 是上面的closeablehttp

    • 这是我如何使用它 - 此外,我已经在超文本传输协议GET周围放置了一个最终块- 这是我的堆栈跟踪- 我正在使用Quartz来安排监控Httpendpoint的工作…这是我的连接池配置 马文依赖..神器版本 编辑-嗯,这个问题通过在最后一个块中不关闭CloseableHttp客户端而得到解决…有人能告诉我为什么它会这样吗?如果我关闭客户端,为什么连接池会关闭? 上面的closeablehttpcli

    • 我创建了以下EJB模块: 1)我的远程接口 2)实现接口的bean 3)接下来我创建了一个属性文件jboss-ejb-client.properties 在部署到wildfly之后,一切都很好。我得到以下信息: 4) 然后我创建了Java客户端 代码很简单。但是如果我运行客户端,我会收到以下错误消息: 我正在使用Netbean 8.2、JavaEE 7和Wildfly 10.1.0-Final。我