公式ウェブサイトに書かれた最初のAPPによると、このアクティビティの問題にはTheme.AppCompatテーマ(または子孫)を使用する必要があります

Android公式サイトの案内でAPPを書いたのは今回が初めてです。

別のアクティビティを開始する

各ステップは公式ウェブサイトの指示に厳密に従い、コードをステップバイステップで入力して実行し、次のエラーが報告されました。

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

ローカル環境:Android Studio 3.0.1バージョン、APP Gradleバージョンは4.1、Androidプラグインバージョンは3.0.1、コンパイルSDKバージョンはAPI 26、最小SDKバージョンは21、ターゲットSDKバージョンはAPI 26、その他のパラメーターはデフォルトです。

まず第一に、私はこの問題についてGoogleを持っておらず、Baiduに行って確認することもしませんでした。エラーレポートから考えただけです。つまり、アクティビティでTheme.AppCompatテーマまたは子孫を使用する必要があります(この子孫の意味は確認していません)

子孫の意味がわからないので、Theme.AppCompatを試してみましょう。

公式ウェブサイトで定義されているDisplayMessageActivityはAppCompatActivityを継承しているため、AndroidManifest.xmlのDisplayMessageActivityの定義に属性android:theme = "@ style / Theme.AppCompat"を追加しようとしましたが、再実行すると成功しました。だから私はこの結論に達しました:

アクティビティがAppCompatActivityを継承する場合は、AndroidManifest.xmlでTheme.AppCompatテーマを設定する必要があります

したがって、アクティビティがAppCompatActivityを継承しない場合は、DisplayMessageActivityの定義を変更してActivityを拡張し、AndroidManifestでTheme.AppCompatを削除すると、正常に実行することもできます。

奇妙なことに、公式Webサイトでコードが段階的に入力されているのに、なぜ公式Webサイトで問題が指摘されていないのでしょうか。

その理由がわかったら、メッセージを残して話し合ってください、ありがとうございます。

おすすめ

転載: blog.csdn.net/Xia_Leon/article/details/82972154