Ilja S.
Ilja S.

Reputation: 1140

Android: Didn't find class "com.google.android.gms.ads.AdActivity" on path

I'm getting following crash reports in Google Play developer console and Google Analytics:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.myapp.package.here/com.google.android.gms.ads.AdActivity}: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.AdActivity" on path: DexPathList[[zip file "/data/app/com.myapp.package.here-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.myapp.package.here-1, /vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.ads.AdActivity" on path: DexPathList[[zip file "/data/app/com.myapp.package.here-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.myapp.package.here-1, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
... 11 more

I'm using latest AdMob (through Google Play Services lib) API as documented here: https://developers.google.com/mobile-ads-sdk/docs/

Relevant parts of config:

<application...>
 <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

layout xml:

  <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="@string/adMobUnitId" />

code:

//onCreate()...
try {
    adView = (AdView) activity.findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build();
    adView.loadAd(adRequest);                    
     } catch (Exception e) {
         Log.e("AdManager", "Unable to load ads", e);            
     }



//onResume()
    adview.resume()

Looks like this only happens on some devices and working fine in emulator and real devices I have access to.

According to Google AdMob Ads Developer group new AdMob SDK should work on devices even if it does not have Google Play installed (btw one crash report is from Nexus7 2013 stock). So I assume it is not a problem...

Also as seen from Ad loading code it is in try/catch and looks like this exception happens even before my code gets executed. This is also seen from exception stack trace (no lines with my app package)

Anybody knows what could be the problem? Any help is appreciated!

Upvotes: 2

Views: 4659

Answers (1)

Ilja S.
Ilja S.

Reputation: 1140

Looks like problem has solved after updating Google Play Services lib to the latest version.

Upvotes: 3

Related Questions