程序中设置了minSdkVersion和targetSdkVersion如下:

<uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="23"/>

设备的版本信息如下:

运行程序出错,Log如下:

01-06 13:56:11.798: E/AndroidRuntime(2396): FATAL EXCEPTION: main
01-06 13:56:11.798: E/AndroidRuntime(2396): java.lang.NoSuchMethodError: android.view.Display.getSize
01-06 13:56:11.798: E/AndroidRuntime(2396): at com.xxx.xxx.activity.TutorialActivity.init(TutorialActivity.java:73)
01-06 13:56:11.798: E/AndroidRuntime(2396): at com.xxx.xxx.activity.TutorialActivity.onResume(TutorialActivity.java:64)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1242)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.app.Activity.performResume(Activity.java:4004)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2515)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2546)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1859)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.app.ActivityThread.access$1500(ActivityThread.java:135)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1041)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.os.Handler.dispatchMessage(Handler.java:99)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.os.Looper.loop(Looper.java:150)
01-06 13:56:11.798: E/AndroidRuntime(2396): at android.app.ActivityThread.main(ActivityThread.java:4333)
01-06 13:56:11.798: E/AndroidRuntime(2396): at java.lang.reflect.Method.invokeNative(Native Method)
01-06 13:56:11.798: E/AndroidRuntime(2396): at java.lang.reflect.Method.invoke(Method.java:507)
01-06 13:56:11.798: E/AndroidRuntime(2396): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
01-06 13:56:11.798: E/AndroidRuntime(2396): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
01-06 13:56:11.798: E/AndroidRuntime(2396): at dalvik.system.NativeStart.main(Native Method)

查看官方文档得知:

该方法是在Android 3.2加入的,问题来了,你让3.2之前的用户怎么办?编写代码时IDE也没有提示说这个方法不能用啊。

对于Android的这个版本兼容性问题真心不想吐槽了,最终解决问题的方法是:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
// 包含新API的代码块
} else {
// 包含旧的API的代码块
}

蛋碎了一地。

怎么理解Android版本兼容???的更多相关文章

  1. 如何兼容所有Android版本选择照片或拍照然后裁剪图片--基于FileProvider和动态权限的实现

    我们知道, Android操作系统一直在进化. 虽然说系统是越来越安全, 可靠, 但是对于开发者而言, 开发难度是越来越大的, 需要注意的兼容性问题, 也越来越多. 就比如在Android平台上拍照或 ...

  2. 我的Android进阶之旅------>Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi")

    Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi") 例如:AndroidManifest.xml中,我们配置了sdk版本的 ...

  3. 【转】Android菜单详解——理解android中的Menu--不错

    原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...

  4. Atitit.播放系统规划新版本 and 最近版本回顾 v3  pbf.doc  1 版本11 (ing)41.1 规划h5本地缓存系列 41.2 Android版本app41.3 双类别系统,

    Atitit.播放系统规划新版本 and 最近版本回顾 v3  pbf.doc 1 版本11 (ing)4 1.1 规划h5本地缓存系列 4 1.2 Android版本app4 1.3 双类别系统, ...

  5. 《深入理解Android内核设计思想》

    <深入理解Android内核设计思想> 基本信息 作者: 林学森 出版社:人民邮电出版社 ISBN:9787115348418 上架时间:2014-4-25 出版日期:2014 年5月 开 ...

  6. Android Emoji兼容包使用详解

    Emoji兼容性 我们经常会遇到这样的问题: 给朋友发的emoji表情, 在自己手机上展示是正常的, 但是到朋友手机上, 却没有展示出来, 或者展示出来了, 但是也跟自己手机上展示的不一样. 所以,  ...

  7. [转载] 深入理解Android之Java虚拟机Dalvik

    本文转载自: http://blog.csdn.net/innost/article/details/50377905 一.背景 这个选题很大,但并不是一开始就有这么高大上的追求.最初之时,只是源于对 ...

  8. 理解Android虚拟机体系结构

    1 什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的 ...

  9. 深入理解Android之Gradle

    深入理解Android之Gradle 格式更加精美的PDF版请到:http://vdisk.weibo.com/s/z68f8l0xTYrZt 下载 Gradle是当前非常"劲爆" ...

随机推荐

  1. RabbitMQ三种Exchange

    Direct Exchange – 处理路由键.需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配.这是一个完整的匹配.如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记 ...

  2. Windows 下安装使用docker swarm machine docker toolbox

    下载docker 集成安装环境 http://get.daocloud.io/#install-toolbox 这个网站很不错,下载 这个集成了 docker docker-machine ,还有gi ...

  3. CSS样式优化

    一.css代码优化作用与意义 1.减少占用网页字节.在同等条件下缩短浏览器下载css代码时间,相当于加快网页打开速度2.便于维护.简化和标准化css代码让css代码减少,便于日后维护3.让自己写的cs ...

  4. JS(javascript) 将网站加入收藏夹

    | 浏览:688 | 更新:2014-09-20 19:39 1 2 3 分步阅读 将网站网址加入收藏夹,方便下次访问! 工具/原料 网址: 电脑. 方法/步骤   //创建加入收藏夹JS函数 < ...

  5. jQuery还原select下拉列表和清空input的值,回显下拉列表框的值

    实现用jQuery还原select下拉列表的值,用了很多种方式,花了一些时间,最后重要找到一种可以实现的方式, 页面上有这些内容 <select id ="level" na ...

  6. Oracle常见SQL语句

    --创建表空间--create tablespace ts_namedatafile 'd:\test\ts_name.dbf' size 100mautoextend on --调整表空间大小--a ...

  7. 对js中的Date扩展,格式化日期

    /** * 对Date的扩展,将 Date 转化为指定格式的String 月(M).日(d).12小时(h).24小时(H).分(m).秒(s).周(E).季度(q) * 可以用 1-2 个占位符 年 ...

  8. 未找到arm-linux-gcc解决办法

    sudo tar jxvf arm-linux-gcc.4.3.3.tar.bz2 export PATH=$PATH:/usr/local/arm/2.95.3/bin #/usr/local/ar ...

  9. 【iCore3 双核心板】例程三十五:HTTP_IAP_ARM实验——更新升级STM32

    实验指导书及代码包下载: http://pan.baidu.com/s/1eRgzSPW iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  10. bash 中的变量

    bash 中的变量 Linux command line 笔记 变量无需声明,自动创建 var=abc #变量a赋值为字符串abc var="hello world" #字符串里有 ...