FATAL EXCEPTION: main

3,872 views
Skip to first unread message

shouta saitou

unread,
Aug 23, 2014, 12:21:46 PM8/23/14
to android-g...@googlegroups.com
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
です。

どなたかわかる方、あるいはヒントなどがあれば、ご教授願えないでしょうか。

中山雄介

unread,
Aug 24, 2014, 12:05:30 PM8/24/14
to android-group-japan

Logcatの内容はしっかり理解できていますか?今回のエラーはそこを読めれば9割は解決できると思います。

Exceptionとして書かれているもの、今回はNoClassDefFoundErrorですが、これがどういう意味を持つのか調べられることをおすすめします。検索すれば一発で答えが解ると思います。

まずエラーが出たらその原因を自分で考える。
今回はログがわかりやすく出ているのでそれを参考にしましょう。
それでダメであれば少しでも検索してみましょう。ログの見方がわからなければそれをまずは調べてみましょう。基本的にAndroidのログは難しいことをしていなければわかりやすく原因を教えてくれます。
そこまで至ってもわからない。そうなったら人を頼りましょう。どこまで調べて、何がわからなくて問い合わせをしたのかをわかりやすくまとめてみましょう。

自分への自戒も込めて書かせていただきました。凄まじく上から目線ですいません。。。

2014/08/25 0:02 "shouta saitou" <lilypla...@gmail.com>:
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

shouta saitou

unread,
Aug 27, 2014, 7:57:03 PM8/27/14
to android-g...@googlegroups.com
有効回答が得られないようなので他のフォーラムに移ります。
マルチスレッドにならないよう、管理者の方、お手数ですがこの投稿を削除しておいてください。

2014年8月24日日曜日 1時21分46秒 UTC+9 shouta saitou:
Reply all
Reply to author
Forward
0 new messages