Reputation: 1140
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
Reputation: 1140
Looks like problem has solved after updating Google Play Services lib to the latest version.
Upvotes: 3