字符串数组保存到Map使用避免超出范围崩溃

买了个新手机,应用又崩溃了,连上电脑看catlog,报错:java.lang.ArrayIndexOutOfBoundsException。

java 复制代码
 String APV[] = new String[] {
            "",
            "Android 1.0 , BASE, 200809",
            "Android 1.1 , BASE_1_1, 200902",
            "Android 1.5 , CUPCAKE, 200904",
            "Android 1.6 , DONUT, 200909",
            "Android 2.0 , ECLAIR, 200910",
            "Android 2.0.1 , ECLAIR_0_1, 200912",
            "Android 2.1.X , ECLAIR MR1, 201001",
            "Android 2.2.x , FROYO, 201005",
            "Android 2.3 / 2.3.1 / 2.3.2, GINGERBREAD, 201012",
            "Android 2.3.3 / 2.3.4 , GINGERBREAD MR1, 201102",
            "Android 3.0.X , HONEYCOMB, 201102",
            "Android 3.1.X , HONEYCOMB MR1, 201105",
            "Android 3.2 , HONEYCOMB MR2, 201107",
            "Android 4.0 / 4.0.1 / 4.0.2, ICE CREAM SANDWICH, 201110",
            "Android 4.0.3 / 4.0.4, ICE CREAM SANDWICH MR1, 201112",
            "Android 4.1 / 4.1.1, JELLY BEAN, 201207",
            "Android 4.2 / 4.2.2, JELLY BEAN MR1, 201211",
            "Android 4.3, JELLY BEAN MR2, 201307",
            "Android 4.4, KITKAT, 201310",
            "Android 4.4W, KITKAT_WATCH, 201406",
            "Android 5.0, Lollipop , 201411",
            "Android 5.1, Lollipop MR1, 201503",
            "Android 6.0, Marshmallow, 201510",
            "Android 7.0, Nougat, 201608",
            "Android 7.1.1, Nougat, 201610",
            "Android 8.0, Oreo, 201708",
            "Android 8.1, Oreo MR1, 201712",
            "Android 9.0, Pie, 201808",
            "Android 10.0, Q, 201909",
            "Android 11, Red Velvet Cake, 20200909",
            "Android 12, Snow Cone, 20211005"
};

String s = APV[android.os.Build.VERSION.SDK_INT]; 
复制代码
android.os.Build.VERSION.SDK_INT,3年多前的旧手机=31,新手机=36,超过范围直接崩溃。

使用Map取不到值="null",不会崩溃。

java 复制代码
HashMap<Integer, String> map_APV;

map_APV = new HashMap<>();
for (int i=0; i<APV.length; i++) {
    map_APV.put(i, APV[i]);
}

String s = map_APV.get(android.os.Build.VERSION.SDK_INT);
相关推荐
好的佩奇10 小时前
Dart 之集合元素
android·flutter·dart
Easyhood11 小时前
Android 开发入门实践(十四):Compose 副作用入门与四个常用 API
android·开发语言·kotlin·android jetpack·compose
FlightYe12 小时前
音视频修炼之容器与协议(四):RTSP详解
android·linux·ffmpeg·音视频·dash
疯华整猫14 小时前
删掉 LeakCanary 那天,我用 Trae 自己撸了一套:最难的不是分析堆,是决定什么时候 dump
android·人工智能·性能优化
mmsx1 天前
耳切法切带洞多边形:论文能跑通,真实数据为什么崩
android·kotlin
洞见前行1 天前
你的 Activity 关了,为什么还活着?Android 内存泄漏从发现、定位到线上治理
android·性能优化·leakcanary
Kapaseker1 天前
Kotlin 又要加语法糖了:这次轮到 if-else
android·kotlin
恋猫de小郭1 天前
Flutter 3.50 & Dart 3.14 发布,快来看看有什么更新吧
android·前端·flutter