字符串数组保存到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);
相关推荐
Meteors.6 小时前
安卓源码阅读——01.grade设置binding为true时,xml如何进行映射
android·xml
_李小白6 小时前
【android opencv学习笔记】Day 26: 滤波算法之低通滤波与图像缩放插值
android·opencv·学习
NiceCloud喜云7 小时前
Claude Code Routines 实战:三种触发器跑通云端自动化编码
android·运维·数据库·人工智能·自动化·json·飞书
我命由我1234510 小时前
Bugly - Bugly 基本使用( App 质量追踪平台)
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
weiggle11 小时前
第二篇:搭建你的第一个 Compose 项目——开发环境与项目结构
android·前端
阿巴斯甜11 小时前
为什么 AIDL 接口客户端、服务端要写两份一模一样的?
android
weiggle12 小时前
第一篇:Jetpack Compose 宣言——为什么 Android 开发需要声明式 UI
android
城管不管13 小时前
什么是Prompt?
android·java·数据库·语言模型·llm·prompt
weiggle14 小时前
Jetpack Compose 重组机制与性能优化深度剖析
android