程序中设置了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. HDU-3549 最大流模板题

    1.HDU-3549   Flow Problem 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 3.总结:模板题,参考了 http://ww ...

  2. MapReduce输入格式

    文件是 MapReduce 任务数据的初始存储地.正常情况下,输入文件一般是存储在 HDFS 里面.这些文件的格式可以是任意的:我们可以使用基于行的日志文件, 也可以使用二进制格式,多行输入记录或者其 ...

  3. 学习PHP第一天-----简单登录

    <!DOCTYPE html> <html> <head> <title>初级登录界面</title> </head> < ...

  4. Linux文件/目录权限设置命令:chmod

    文件/目录权限设置命令:chmod 这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限.该命令有两种用法: 用包含字母和操作符表达式的文字设定法 其语法格式为:chmod [w ...

  5. as3如何做出残影效果

    在页游中,时不时能看到人物做一些快速移动动作如冲刺时,有残影效果,强化了画面表现.实际人肉眼之所以能看到残影的效果,是因为观察到的物体会在人视线中残留几十毫秒时间,当运动物体运动太快时,人肉眼所见未能 ...

  6. MySQL中引号的问题

    原文: http://blog.csdn.net/wisgood/article/details/6317543 mysql中一个字符串,既可以用两个单引号表示,也可以用两个双引号表示. 比如字符串 ...

  7. 解决thinkPHP构造函数__construct导致tp方法冲突问题

    我们在使用了__construct构造函数,覆盖了父类的构造函数,导致父类tp的方法无法使用,例如$this->display(),解决办法是: 在__construct函数中调用一下父类的构造 ...

  8. php date()获取的时间不对解决办法

    因为php默认获取的是格林威治时间,与北京时间相差8小时. 我们要获取到北京时间有两个办法: 1.修改php.ini配置文件: 打开php.ini文件,一般在php配置根目录下,找到其中的 ;date ...

  9. ZK dropEvent简单使用

    前台(Drop.zul) <?page title="拖动测试" contentType="text/html;charset=UTF-8"?> & ...

  10. jquery 多选框的问题

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...