【发布时间】:2014-02-19 16:04:02
【问题描述】:
我在 Google Play 开发者控制台和 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
我正在使用此处记录的最新 AdMob(通过 Google Play 服务库)API: https://developers.google.com/mobile-ads-sdk/docs/
配置的相关部分:
<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" />
布局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" />
代码:
//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()
看起来这只发生在一些设备上,并且在我可以访问的模拟器和真实设备上正常工作。
According to Google AdMob Ads Developer group 新的 AdMob SDK 应该可以在没有安装 Google Play 的设备上运行(顺便说一句,一份崩溃报告来自 Nexus7 2013 库存)。所以我认为这不是问题......
从广告加载代码中也可以看出,它位于try/catch 中,并且看起来这个异常甚至在我的代码执行之前就发生了。这也可以从异常堆栈跟踪中看到(我的应用程序包中没有行)
有人知道可能是什么问题吗?任何帮助表示赞赏!
【问题讨论】:
-
@llja s。我认为这个问题是因为你需要绘制布局所有内容的像素大小,无论是填充父还是包装内容,它可能会对你有所帮助.......
标签: android admob google-play-services