Según la primera APLICACIÓN escrita en el sitio web oficial, debe usar un tema Theme.AppCompat (o descendiente) con este problema de actividad

Esta es la primera vez que escribo una aplicación basada en la guía del sitio web oficial de Android.

Iniciar otra actividad

Cada paso siguió estrictamente las instrucciones del sitio web oficial, escribiendo y ejecutando el código paso a paso, y se informó el siguiente error:

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.
10-08 18:08:40.878 18503 18503 E AndroidRuntime:        at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:354)
10-08 18:08:40.878 18503 18503 E AndroidRuntime:        at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
10-08 18:08:40.878 18503 18503 E AndroidRuntime:        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
10-08 18:08:40.878 18503 18503 E AndroidRuntime:        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
10-08 18:08:40.878 18503 18503 E AndroidRuntime:        at com.huawei.anrdemo.DisplayMessageActivity.onCreate(DisplayMessageActivity.java:13)
10-08 18:08:40.878 18503 18503 E AndroidRuntime:        at android.app.Activity.performCreate(Activity.java:7372)
10-08 18:08:40.878 18503 18503 E AndroidRuntime:        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
10-08 18:08:40.878 18503 18503 E AndroidRuntime:        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)
10-08 18:08:40.878 18503 18503 E AndroidRuntime:        ... 9 more

Entorno local: versión de Android Studio 3.0.1, la versión de APP Gradle es 4.1, la versión del complemento de Android es 3.0.1, la versión de Compile SDK es API 26, la versión mínima de SDK es 21, la versión de Target SDK es API 26 y otros parámetros son predeterminados.

En primer lugar, no tengo Google para este problema, ni fui a Baidu para verificarlo. Solo lo pensé en el informe de errores, lo que significa que su actividad debe usar un tema Theme.AppCompat o descendiente ( No verifiqué el significado de este descendiente)

Como no sabe lo que significa descendiente, intentemos Theme.AppCompat.

Dado que DisplayMessageActivity definido en el sitio web oficial hereda AppCompatActivity, luego intenté agregar un atributo android: theme = "@ style / Theme.AppCompat" a la definición de DisplayMessageActivity en AndroidManifest.xml, y tuvo éxito después de volver a ejecutarlo. Entonces llegué a esta conclusión:

Si la actividad hereda AppCompatActivity, entonces necesita establecer un tema Theme.AppCompat en AndroidManifest.xml .

Entonces, si la actividad no hereda AppCompatActivity, entonces cambio la definición de DisplayMessageActivity para extender Activity y eliminar Theme.AppCompat en AndroidManifest, también puede ejecutarse normalmente.

Lo extraño es que el código se escribe paso a paso en el sitio web oficial, ¿por qué el sitio web oficial no señala el problema aquí?

Si conoce la razón de esto, deje un mensaje para discutir, gracias.

Supongo que te gusta

Origin blog.csdn.net/Xia_Leon/article/details/82972154
Recomendado
Clasificación