Android Studioのエミュレータでアプリを実行したらエラーになった件の対処法

php・MySQL・Web開発

『中学生でもわかるAndroidアプリ開発講座 改訂2版』という本を買いまして、いまさらながらアプリ制作の勉強を始めました。Androidアプリ開発のみならず、そもそもJava自体が初挑戦です。

まずは書籍の指示に従ってAndroid Studio等のインストールを完了。

早速コードも写経して、「薄いグレー色の画面をエミュレータ上に表示させる」というHello World的な課題にチャレンジ中に起こったトラブル。

Run ‘app`でコンパイル(?)が始まるんですが、途中でエラーで止まってしまう。
エラーメッセージを見ると、

(自分の環境PATH)\appcompat-v7\23.0.0\res\values-v23\values-v23.xml
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.

みたいな感じ。

ググった結果

いろいろググってみると英語の情報ばかりヒットするので分かりにくいんですが、要するに最新のSDK tools 23というバージョンにおいて頻発する問題らしいです。

【参考】Issue 183122 – android -Error retrieving parent for Item – AppCompact-v7 23 – Android Open Source Project – Issue Tracker – Google Project Hosting

で、外人さんたちの議論を見てみると、SDKのバージョンを前に戻せよ、という感じ。

しかし前に戻せといわれても、こちとらAndroid Studioをインストールしたばかり。
「Run app」自体が初めてのことです。

よく分からないのでググったところ、以下のサイトを参考に古いSDKなどをインストールできるらしいと知って実行。

【参考】Android Studio をWindowsにインストールする

「Tools」→「Android」→「SDK Manager」と開いた画面の下部にある、「Launch Standalone SDK Manager」というリンクをクリックすると上記サイトに関する作業が捗ります。

試行錯誤した結果

その後いろいろ試行錯誤した結果、以下の手順を見つけました。

まず、「build.gradle(Module: app)」の内容を以下の画像のように二箇所書き換える。

android_sdk23_error

画像クリックで拡大

このように「buildToolsVersion」を “22.0.1”に変更して、
compile ‘com.android.support:appcompat-v7:23.0.0’ を
compile ‘com.android.support:appcompat-v7:22.2.1’ に
書き換える。

すると以下のようなアラートが出るので、「Sync Now」をクリック。

android_sdk23_error2

これにて準備が整い、再び冒頭の通りにRun ‘app`(Shift + F10)してみたところ、エラーもなく完了。
書籍で掲載されていた内容通りにアプリを実行するエミュレータを選択する画面に進めました!

どこが「中学生でもわかる」だよ!?

・・・ふぅ、これだけで2~3時間もハマってしまった。
いきなり最初の段階からこの難解なつまづき。

『中学生でもわかる~』という書名ですが、今回のような内容のトラブルシューティングは中学生(それもプログラミング初心者)にはかなり難しいというか、ほぼ100%無理でしょう。
ググって出てくる情報がほとんど英語圏のものばかりだし、コンパイルの仕組みなどプログラミングに関する知識をある程度持っていないと気が付きにくいトラブルでした。

比較的出版してから年月の浅い当書籍ですら、この体たらく。
IDEやSDKのアップデートに伴って、せめて出版から2年くらいはWeb上で訂正情報をアップしてほしいものです。

別の解決法も発見

別のパソコンにてもう一度ゼロからJDKやらAndroid Studioやらをインストール。
デフォルト設定のまま初回起動した時点で実行(Run app)ボタンを押してみましたが、やはり同じエラーが出ました。

インストールした直後でこんな致命的なエラーが出るとか、Android Studioもかなりいい加減ですね。

で、またググってみたところ、もっと簡単な解決法を発見しました。

【参考】Blog about etc: Memo: Error:(2) Error retrieving parent for item: No resource found that matches the given name ‘android:TextAppearance.Material.Widget.Button.Inverse’.

ずばりエラー内容そのものを記事タイトルにしているブログです。

これによると、

change compileSdkVersion 22 to compileSdkVersion 23

って書いてある。

これは前述した「build.gradle(Module: app)」の一行目にある

compileSdkVersion 22

compileSdkVersion 23

に書き換えろ、という意味です。

上記変更を施し、「Sync Now」をクリックした後に実行ボタンを押すと、たしかにエラーもなくエミュレータ選択画面になりました。で、エミュレータ起動後も無事に「Hello world!」が表示されております。

こちらのやり方のほうが簡単ですね。
ただ、これらの変更がアプリ開発にどのような影響を及ぼすのか、初心者なので私にはまだよく分かりません。

ちなみに今回の記事で使用したバージョンは
Android Studio 1.3.1
Build AI-#141.2135290, built on August 3, 2015

コメント

  1. 添田啓介 より:

    >どこが「中学生でもわかる」だよ!?
    同感です。

    >試行錯誤した結果
    うまくできました。ありがとうございます。

    >別の解決法も発見
    うまくできません。
    書籍のP51の方法で最新バージョンをインストールしたら元のコードでもOKでした。

    定年退職後に町内の老人会で爺ちゃん婆ちゃんとパソコンで遊んでいます。
    子供会とも仲良くなりたいと思いスマホアプリの作成を勉強中です。

    • terahit より:

      >添田さん
      定年された後にスマホアプリ開発を勉強なさるとは凄いですね!

      > 書籍のP51の方法で最新バージョンをインストールしたら元のコードでもOK

      Android Studioは目まぐるしくバージョンアップを続けておりますので、常に状況は変わります。
      書籍はすぐに古くなるし、このブログの記事の内容もすぐに陳腐化します。
      いろいろな情報を参考にしながら各自試行錯誤していくしかないですね。

タイトルとURLをコピーしました