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

Source: Internet
Author: User

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

You want to test the difference between onPause () and onStop () through the Dialog topic when learning the Activity lifecycle.

An error occurred while clicking the button to jump to the 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)

Find the most useful sentence, indicating that the theme used does not match the current Activity.

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

The activity configuration in AndroidManifest. xml is as follows:

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

Follow the error message to change to the AppCompat topic:

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

After checking the java code, I found that my Activity inherits the AppCompatActivity class. When creating an Activity in Android Studio, if the Backwards Compatibility (AppCompat) option is selected, the created Activity inherits the AppCompatActivity instead of the Activity. In this case, you need to use the corresponding APPCompat topic.

Java code:

 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 }

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.