Issue
i am using this code which looks perfect without any error bt dont know why my application gets crashed everytime i run my app..
<com.google.ads.AdView
android:id="@+id/ad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId= "idthatigotthroughadmob"
ads:loadAdOnCreate="true"
ads:adSize="BANNER"
/>
in android manifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
in
<application><activity
android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
></activity> </application>
logcat shows
04-12 21:30:09.655: E/dalvikvm(272): Could not find class 'com.google.ads.AdView',
referenced from method com.project.hisaabkikitaab.MainActivity.onCreate
04-12 21:30:09.655: W/dalvikvm(272): VFY: unable to resolve check-cast 471 (Lcom/google
/ads/AdView;) in Lcom/project/hisaabkikitaab/MainActivity;
04-12 21:30:09.655: D/dalvikvm(272): VFY: replacing opcode 0x1f at 0x000e
04-12 21:30:09.655: D/dalvikvm(272): VFY: dead code 0x0010-02b9 in Lcom/project
/hisaabkikitaab/MainActivity;.onCreate (Landroid/os/Bundle;)V
04-12 21:30:09.815: D/AndroidRuntime(272): Shutting down VM
04-12 21:30:09.815: W/dalvikvm(272): threadid=1: thread exiting with uncaught
exception (group=0x4001d800)
04-12 21:30:09.845: E/AndroidRuntime(272): FATAL EXCEPTION: main
04-12 21:30:09.845: E/AndroidRuntime(272): java.lang.NoClassDefFoundError:
com.google.ads.AdView
04-12 21:30:09.845: E/AndroidRuntime(272): at
com.project.hisaabkikitaab.MainActivity.onCreate(MainActivity.java:42)
04-12 21:30:09.845: E/AndroidRuntime(272): at
.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
Solution
You need to add the ads
namespace to the layout root node, too
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
The tutorial where you probably took the example from already has it:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="MY_AD_UNIT_ID"
ads:adSize="BANNER"
ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
ads:loadAdOnCreate="true"/>
</LinearLayout>
Source: https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals, Android tab
Another possible solution:
Is there a libs
folder in your project? If so, is there the admob
library? In case you say no to any of those, make sure a libs
folder is created (at the same level of res
and src
, and copy your admob
library there. Clean project and rebuild.
Answered By - Sergi Juanola
Answer Checked By - Willingham (JavaFixing Volunteer)