2013年4月3日水曜日

AndroidのAdMobを使ってるプロジェクトでProGuardを使ってリリースビルドを作る時に出るエラーの対処

AndroidのAdMobを使ってるプロジェクトでProGuardを使ってリリースビルドを作るとこんなエラーが出る。

Proguard returned with error code 1. See console
Warning: com.google.ads.m: can't find referenced class com.google.ads.internal.state.AdState
Warning: com.google.ads.m: can't find referenced class com.google.ads.internal.state.AdState
  You should check if you need to specify additional program jars.
Warning: there were 2 unresolved references to classes or interfaces.
  You may need to specify additional library jars (using '-libraryjars').
java.io.IOException: Please correct the above warnings first.
  at proguard.Initializer.execute(Initializer.java:321)
  at proguard.ProGuard.initialize(ProGuard.java:211)
  at proguard.ProGuard.execute(ProGuard.java:86)
  at proguard.ProGuard.main(ProGuard.java:492)

ここで議論されているように、proguard-project.txtに次の行を加えるとエラーを回避できる。

-dontwarn com.google.ads.**

どうやらこの問題の原因は、AdMobがすでにProGuard化済であることによるらしい。

ProGuard problem on Android AdMob SDK 6.2.0 - Google グループ