たぶん週刊「今週の進捗」

1週間に勉強したことや実装したことをネタに、週に1回(主に土日に)更新していく予定です。「多分」なので、臨時休刊があってもご海容ください。

プロつく計画6:ランニング用走行距離計測アプリを作る

今日も今日とて、java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 問題です。

AndroidManifest.xml だけでなく styles.xml も噛んでいるみたいなので、そっちも見てみることに。

試しに、 styles.xml を以下のように編集してみる。

<!-- Theme.AppCompat を継承して、Theme.MyAppCompat を作成 -->
<style name="Theme.MyAppCompat" parent="Theme.AppCompat">
    <!-- 中略 -->

</style>

で、これに合わせて、AndroidManifest.xml を編集。

<application
    <!-- 中略 -->
    <!-- android:theme に、 styles.xml で作成した theme を指定 -->
    android:theme="@style/Theme.MyAppCompat">

で、ビルドしてみます。

11:24:26.294 30345-30345/net.zeitungm.measureofroad E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: net.zeitungm.measureofroad, PID: 30345
                                                                           java.lang.RuntimeException: Unable to start activity ComponentInfo{net.zeitungm.measureofroad/net.zeitungm.measureofroad.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.common.api.GoogleApiClient.connect()' on a null object reference
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2509)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2569)
                                                                               at android.app.ActivityThread.access$900(ActivityThread.java:150)
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1399)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                               at android.os.Looper.loop(Looper.java:168)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5885)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
                                                                            Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.common.api.GoogleApiClient.connect()' on a null object reference
                                                                               at net.zeitungm.measureofroad.MainActivity.onStart(MainActivity.java:178)
                                                                               at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1288)
                                                                               at android.app.Activity.performStart(Activity.java:6279)
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2472)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2569) 
                                                                               at android.app.ActivityThread.access$900(ActivityThread.java:150) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1399) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:168) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5885) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) 

ぬるぽ 新しいエラー Attempt to invoke virtual method 'void com.google.android.gms.common.api.GoogleApiClient.connect()' on a null object reference が出ました。 ということは、これで You need to use a Theme.AppCompat theme (or descendant) with this activity. は解決です!(多分)

というか、このくらい先週の時点で察するべきだったなぁ…