前提・実現したいこと
「初めてのAndroidプログラミング第3版」という本を元にアラームアプリを作っているのですが、エミュレータで実行するとアプリがすぐに強制終了してしまいます。
発生している問題・エラーメッセージ
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myalarm, PID: 9922
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myalarm/com.example.myalarm.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:555)
at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:518)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:466)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.example.myalarm.MainActivity.onCreate(MainActivity.kt:25)
at android.app.Activity.performCreate(Activity.java:7009)
at android.app.Activity.performCreate(Activity.java:7000)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) ```
該当のソースコード
kotlin
1 2//以下のようにMainActivityはAppCompatActivityを継承しています。 3class MainActivity : AppCompatActivity() {略}``` 4 5//またAndroidManifest.xmlは以下のようになっています。 6<?xml version="1.0" encoding="utf-8"?> 7<manifest xmlns:android="http://schemas.android.com/apk/res/android" 8 package="com.example.myalarm"> 9 <application> 10 android:allowBackup="true" 11 android:icon="@mipmap/ic_launcher" 12 android:label="@string/app_name" 13 android:roundIcon="@mipmap/ic_launcher_round" 14 android:supportsRtl="true" 15 android:theme="@style/AppTheme" 16 <activity android:name=".MainActivity"> 17 <intent-filter> 18 <action android:name="android.intent.action.MAIN" /> 19 <category android:name="android.intent.category.LAUNCHER" /> 20 </intent-filter> 21 </activity> 22 <receiver android:name=".AlarmBroadcastReceiver"></receiver> 23 </application> 24</manifest> 25 26//それとstyles.xmlもこんな感じです。 27<resources> 28 <!-- Base application theme. --> 29 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 30 <!-- Customize your theme here. --> 31 <item name="colorPrimary">@color/colorPrimary</item> 32 <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 33 <item name="colorAccent">@color/colorAccent</item> 34 </style> 35</resources> 36 37### 試したこと 38 39まずclass MainActivity:Activity(){}とすると上手くいくのですが、これはしたいことではありませんでした。次に、proguard-rules.proというファイルに 40-keep class com.google.android.gms.** { *; } 41-keep public class com.google.android.gms.** 42-dontwarn com.google.android.gms.** 43-keep class android.support.v7.** { *; } 44-keep interface android.support.v7.** { *; } 45という記述をそのまま一番下に貼り付けたのですがうまく行きませんでした。他に、AndroidManifest.xmlを 46android:theme=”@style/Theme.AppCompat.Light” 47という風に書き換えましたがダメでした。 48 49### 補足情報(FW/ツールのバージョンなど) 50 51Android Studio 3.5.3 52MacBookPro(MacOS High Sierra 10.13.6)
あなたの回答
tips
プレビュー