简体   繁体   中英

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!

将Google Play服务库更新到最新版本后,问题似乎已解决。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM