程序中设置了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. 李洪强漫谈iOS开发[C语言-051]-判断整数位数

  2. JQuery基本方法介绍和使用

    1.属性 $("p").addClass(css中定义的样式类型); 给某个元素添加样式 常用于表格鼠标移动效果 $(document).ready(function(){ //& ...

  3. iPhone6分辨率与适配

    iPhone6分辨率与适配 分辨率和像素 经新xcode6模拟器验证(分辨率为pt,像素为真实pixel): iPhone5分辨率320x568,像素640x1136,@2x iPhone6分辨率37 ...

  4. 无法删除DLL文件解决方法(转)

    手动解决dll文件无法删除的终极方法 手动解决dll文件无法删除的终极方法 相信大家都遇见过:在删除一些软件的时候弹出某某文件正在运行或磁盘写保护不能删除这样的报错提示吧.而常常删除不掉的都一些后缀为 ...

  5. svn学习笔记(2)操作----还原,重命名,冲突处理,权限配置等

    1.查看某个文件的所有版本信息 2.版本还原,还原到之前的某一个版本 通过show log查看 查看某个文件的所有版本后,可以在这些版本之间自由切换 3.文件改名 文件改名字给我们一个教训: 如:in ...

  6. JSP中乱码问题

    一.JSP页面显示乱码 二.表单提交中文时出现乱码 三.数据库连接 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大 ...

  7. linux下mysql的忘记root密码的解决办法

    因为放寒假家里没有宽带,便很少上网,前几天用手机进入自己的个人博客时竟然返回数据库不能连接的错误,吓我一跳,网站肯定被人黑了,但转头一想我的博客就几篇破文章,谁这么无聊要黑,我并没有立刻去网上找解决的 ...

  8. Android课程---关于对话框的学习

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  9. 【iCore3 双核心板_ uC/OS-III】例程十一:任务消息队列

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

  10. java 使用 poi 解析excel

    背景: web应用经常需要上传文件,有时候需要解析出excel中的数据,如果excel的格式没有问题,那就可以直接解析数据入库. 工具选择: 目前jxl和poi可以解析excel,jxl很早就停止维护 ...