zoukankan      html  css  js  c++  java
  • 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问题

    https://blog.csdn.net/jyw935478490/article/details/72868751

    按照官网写的第一个APP,出现了You need to use a Theme.AppCompat theme (or descendant) with this activity问题

    版权声明:文章版权归作者所有,转载请务必注明出处。 https://blog.csdn.net/Xia_Leon/article/details/82972154

    这是我第一次根据Android官网指导写的APP,链接如下:

    Start Another Activity

    每一步都严格参照了官网指导,一步一步敲代码、运行,结果报了如下错误:

    1.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
    2.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
    3.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
    4.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
    5.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
    6.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: at com.huawei.anrdemo.DisplayMessageActivity.onCreate(DisplayMessageActivity.java:13)
    7.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7372)
    8.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
    9.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)
    10.  
      10-08 18:08:40.878 18503 18503 E AndroidRuntime: ... 9 more
    11.  
       

    本地环境: Android Studio 3.0.1版本,APP 的 Gradle version是4.1,Android Plugin Version是3.0.1,Compile SDK Version是API 26,Min SDK Version是21,Target SDK Version是API 26,其余参数都是默认。

    首先,这个问题我没有Google,也没有去百度查,只从其报错上思考了下,意思是说你的这个activity需要使用一个Theme.AppCompat主题或descendant(没有去查这个descendant是什么意思)

    既然不懂descendant是什么意思,那姑且就尝试下 Theme.AppCompat 吧

    由于官网定义的这个 DisplayMessageActivity 继承的是 AppCompatActivity,然后我就尝试在 AndroidManifest.xml 里面将 DisplayMessageActivity 的定义增加了一个属性 android:theme="@style/Theme.AppCompat",重新运行后果然成功。于是自己得出这个结论:

    如果 activity 继承的是 AppCompatActivity,那么它在 AndroidManifest.xml 里面需要设置一个 Theme.AppCompat 主题

    那如果 activity 不继承 AppCompatActivity 呢,然后我又把 DisplayMessageActivity 的定义改成了 extends Activity,并把AndroidManifest里面的 Theme.AppCompat 去掉,同样可以正常运行。

    奇怪的是,明明按照官网一步一步敲的代码,为什么官网没有指出这里的问题?

    如果知道这个原因的大神,还请留言讨论,谢谢。

  • 相关阅读:
    第九节 堆栈的概念和python代码实现
    第八节 单向循环链表简单介绍和python代码实现
    第七节 双向链表简单介绍和python代码实现
    第六节 单链表简单介绍和python代码实现
    第五节 顺序表的原理与python中的list类型
    第四节 抽象数据类型
    第三节 Python列表类型性能测试以及内置字典操作的时间复杂度分析
    第二节 大O表示法和时间复杂度
    MySQL优化指南
    Java类加载机制详解
  • 原文地址:https://www.cnblogs.com/okgogo2000/p/10325127.html
Copyright © 2011-2022 走看看