webviewさせるアプリにadmobを入れようとしています。
eclipse上では、とくにエラーが出ません。
ですが、runすると
以下のようなエラーがでて、デバッグデバイス側には「強制終了しました」が出ます。
FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.google.android.gms.ads.AdView
at com.xxxxxxx.xxxxxxxActivity.onCreate(xxxxxxxActivity.java:30)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Google play service libs を参照させています。
以下ページの解説を参照してコードを書いています。忠実に進めたつもりです。
参照元
アプリの内容はwebviewを表示させるだけの簡単なものです。
import com.google.android.gms.ads.*;
public class xxxxxxActivity extends Activity {
/** Called when the activity is first created. */
private String MobileID = "0000xx000000x"; //ダミー
private static WebView webView;
@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
AdView adView = (AdView)this.findViewById(R.id.adView);
webView = new WebView(this);
// 一般モード
//AdRequest adRequest = new AdRequest.Builder().build();
// テストモード
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR) // エミュレータ
.addTestDevice(MobileID) // テストデバイス
.build();
adView.loadAd(adRequest);
以下を調べて試してみました。
・libsフォルダを作って、Google play serviceのjarファイルを置く。
これはダメでした。情報が古い気がしますが、気のせいでしょうか。
・Android SDK Toolsを更新する
すでに23.02の最新になっていました。
//////////////
なんとなく
AdView adView = (AdView)this.findViewById(R.id.adView);
webviewのアクティビティに一緒に書いているのも問題でしょうか。
もし別立てする場合にはどうしたらよいかわかりません。
たしかclassは複数書けないのじゃなかったでしたっけ。
環境は
Eclipse Java EE IDE for Web Developers.
Version: Juno Service Release 2
です。
どなたかわかる方、あるいはヒントなどがあれば、ご教授願えないでしょうか。