Séb*_*ien 5 java android admob
上下文:
我使用AdMob中介在我的应用中显示横幅广告.我集成了Millennial广告网络SDK和Millennial AdMob适配器.
问题:我的应用支持Android API 9+,而Millennial SDK支持API 16+.更糟糕的是,SDK没有优雅地失败(没有向AdMob中介层返回任何广告,以便它可以继续沿着中介瀑布走下去),SDK在运行Android <16(Fatal Exception: java.lang.NoSuchMethodError
android.webkit.WebSettings.setAllowUniversalAccessFromFileURLs)的设备上崩溃
显然千禧一代开发人员并不打算解决这个问题,他们建议发布2个不同的APK("<16"没有他们的SDK和"16+"他们的SDK),这是一个麻烦的解决方案.
我更喜欢更简单的解决方案:在运行Android API <16的设备上,我想重现AdMob适配器丢失时会发生的情况:AdMob中介只会转到下一个网络.这意味着在我实例化AdMod中介横幅之前卸载或删除 Millennial适配器类.
问题:
有没有办法在运行时阻止给定类(来自第三方库)的任何未来瞬间?(例如,通过强制ClassNotFound异常)
有什么方法可以防止将来在运行时实例化给定类吗?(例如,通过强制 ClassNotFound 异常)
您可以在加载适配器之前检查操作系统版本,以及它是否低于您的阈值
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.THE_VERSION_I_WANT_MINIMUM) {
// doStuffs()
} else {
throw new MyException("Stuffs have stuffened...");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |