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サイトで問題が指摘されていないのでしょうか。
その理由がわかったら、メッセージを残して話し合ってください、ありがとうございます。