admob:应用程序在 android 3.2 上崩溃
Posted
技术标签:
【中文标题】admob:应用程序在 android 3.2 上崩溃【英文标题】:admob: app crashes on android 3.2 【发布时间】:2014-11-20 04:03:13 【问题描述】:我正在将 admob 集成到我完美运行的 android 应用程序中。 我设法在我的 Jelly Bean (4.1.2) 手机上运行,但应用程序在我的蜂窝平板电脑 (3.2) 上崩溃并显示消息
java.lang.NoClassDefFoundError: android.net.http.HttpResponseCache
不确定是否相关,但在我的清单文件中我设置了 minSdkVersion="9"
我似乎无法在 Google 上找到相关问题。 有没有人见过这个?可能是什么原因?
编辑:libs 文件夹中没有文件。一切都是使用 gradle 设置的。
我的清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="foo.bar.results"
android:versionCode="6"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="19" />
<application
android:icon="@drawable/bar"
android:label="@string/app_name" >
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".bar"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
【问题讨论】:
有一个使用lib项目和admob jar文件 这似乎是从今天开始的,对很多人来说...... 我今天注意到我的测试应用程序出现了同样的问题。 Admob 在 loadAd 时崩溃。我刚刚添加了一个 try and catch NoClassDefFoundError 来忽略 3.2 设备的这个问题作为临时解决方案。 admob 在这么短的时间内又出现了另一个问题。大约一个月前的另一个花了他们几周的时间来修复。现在这个。由于没有向 3.2 位用户显示广告,因此这让我们付出了代价/这也让谷歌付出了金钱,希望他们能尽快修复它。同时我只能希望try catch可以 【参考方案1】:这似乎是(又一个)但在 Google Play 服务中。对于这个问题,我们有 176 个关于 Android 3.2 的崩溃报告,所以问题不是你的代码。
以下是 Google AdMob 论坛中报告的问题: http://goo.gl/hNdiVo
【讨论】:
感谢您的留言。由于这是我第一次尝试使用 admob,因此现在发生这种情况似乎非常巧合。恶业? :)【参考方案2】:这似乎是从 9 月 25 日开始对许多人造成的错误。谷歌已承诺将在下周内发布更新以解决此问题。
归根结底,这归结为 android 文档中的一个错误。 Android SDK 中的 HttpResponseCache 表示它在 API 13 中可用,但似乎 API 13 实际上并不支持 HttpResponseCache,而是您必须转到 API 级别 14 才能获得对它的支持。所以有人在没有正确检查的情况下发布了 API 13 的构建更改,依赖于 Android SDK 文档是正确的。
目前,最好的办法是做这样的事情:
try
adView.loadAd(builder.build());
catch (NoClassDefFoundError ex)
【讨论】:
知道他们将如何解决这个问题以及何时解决?今天我将我的 google_services_lib 更新到第 19 版。这是他们正在修复的修复吗? Rev 19 似乎有一段时间了。我不完全理解问题出在哪里,尽管我注意到它没有任何更新。我怀疑这是某种服务器问题... 看来问题已经自己解决了。现在一切都在蜂窝上工作。我不太明白,因为我没有更新播放服务......谷歌必须有 NSA 访问我的电脑;)【参考方案3】:只需从 Android SDK Manager 更新您的 google-play-services 即可。之后重新启动您的 IDE,并清理项目。它有效。
【讨论】:
您好,谢谢您的回答。我想我正在运行最新版本,在 sdk 管理器中没有提及更新。 附录:当前安装的播放服务版本是Rev. 19以上是关于admob:应用程序在 android 3.2 上崩溃的主要内容,如果未能解决你的问题,请参考以下文章
admob-plus-cordova 停止在 Android 上运行
在 android 中使用带有 admob 的完全自定义视图