先日のAdvertising IDの件で現在、広告モジュールの入れ替えを急ピッチで行っています。
ここで新たな問題が発覚しました。

現在、ZipReaderにおいて、AdMobの旧SDK(GoogleAdMobAdsSdk-6.4.1.jar)を廃止し、新たにgoogle-play-service_libをインポートして動作確認を行っていました。
そして、ついでにエラーの検証と修正を行いました。
その過程で現在Android2.2のHTC Desireでデバッグしようとしていました。

以下のエラーが出ました。


01-06 09:27:58.564: E/AndroidRuntime(1151): FATAL EXCEPTION: AdWorker #1
01-06 09:27:58.564: E/AndroidRuntime(1151): java.lang.NoSuchMethodError: java.io.IOException.
01-06 09:27:58.564: E/AndroidRuntime(1151): at com.google.android.gms.internal.k.f(Unknown Source)
01-06 09:27:58.564: E/AndroidRuntime(1151): at com.google.android.gms.internal.k.b(Unknown Source)
01-06 09:27:58.564: E/AndroidRuntime(1151): at com.google.android.gms.internal.i.a(Unknown Source)
01-06 09:27:58.564: E/AndroidRuntime(1151): at com.google.android.gms.internal.i.a(Unknown Source)
01-06 09:27:58.564: E/AndroidRuntime(1151): at com.google.android.gms.internal.bz.aB(Unknown Source)
01-06 09:27:58.564: E/AndroidRuntime(1151): at com.google.android.gms.internal.ct$1.run(Unknown Source)
01-06 09:27:58.564: E/AndroidRuntime(1151): at com.google.android.gms.internal.cu$1.run(Unknown Source)
01-06 09:27:58.564: E/AndroidRuntime(1151): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
01-06 09:27:58.564: E/AndroidRuntime(1151): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
01-06 09:27:58.564: E/AndroidRuntime(1151): at java.lang.Thread.run(Thread.java:1102)

NoSuchMethodErrorということで、メソッドがないということはわかったのですが、IOExceptionというのが解せませんでした。
いろいろググッて英語の文章をGoogle翻訳にかけてみたところ、、、

どうやら、Android2.2(Froyo)以前の端末ではもう動かないようです。

参考元:Android: FATAL EXCEPTION: AdWorker #1 java.lang.NoSuchMethodError: java.io.IOException.

全体を理解しているわけではありませんがたぶんあっていると思います。

さて、そうなると現在Android2.2(API8)を許しているアプリの広告についてです。
・・・あきらめろということでしょうか?

とりあえず現状動いているものは仕方がないので、
android:minSdkVersion="9"
でZipReaderをリリースしたいと思います。
Android2.2以下の端末で使用しているユーザには更新ができませんがご容赦ください。

あぁ、Googleに頼り切ったこの状況、腹が立つ。。。

LINEで送る
Pocket