2012-9-20
android: AdMobの実装でエラーが出てコンパイルできない
症状:
AdMob の指示通りに AdMob を実装してみるが、エラーが出てコンパイルが完了しない。LogCat を見ると FATAL エラー、cannot inflate class com.google.ads.AdView (記憶なので微妙に違う可能性あり)というようなエラーが出る。
解決法:
AdMob の指示では、SDK をインストールして、「プロジェクト名右クリック → プロパティ → Java のビルド・パス → 外部 JAR の追加... 」で SDK の jar ファイルを読み込むように指示がされている。
このとき、SDK JAR の置き場所についてはなんら指示がない。が、これでは jar にパスが通らない=AdView を読み込めない=上のエラーから抜け出せないこと請け合いである。
たしかに、SDK のダウンロード場所はどこでもよい。ただし、ダウンロードした後、次の2つの操作が必要だ。
1 .JAR ファイル(GoogleAdMobAdsSdk-6.1.0.jar、執筆時のバージョン)を
- \ユーザー\ユーザー名\workspace\プロジェクト名\libs\
にコピペする。JAR ファイルだけで良い。
2. eclipse を再起動して、1.の操作が反映されるようにしてから、AdMob の指示にある Java のビルド・パスの画面に行く。
- プロジェクト名右クリック → ビルド・パス → ビルド・パスの構成
ただし、ここで指示通り「外部 JAR の追加...」を押すのではなく、「JAR の追加... 」を押して、1.の \libs\ にある JAR ファイルを組み込む。
これで JAR ファイルが内部化され、com.google.ads.AdView のパスも通り、コンパイルも問題なく完了するはずである。
これも Stack Overflow からヒントを得て解決できた。やはり困ったときの Stack Overflow 様か…
ちなみに、パブリッシャー ID はプロジェクトごとに異なるが、この JAR ファイルは使いまわせるので、SDK をダウンロードするのはどこでもよいとはいえ、分かりやすいところに置いておくのがよいだろう。