字符串数组保存到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);
相关推荐
plainGeekDev5 小时前
依赖管理 → Version Catalog
android·java·kotlin
韩曙亮6 小时前
【Flutter】Flutter 进程保活 ③ ( 屏幕常亮设置 | Flutter 禁止息屏、关闭自动锁屏、屏蔽系统屏保 )
android·flutter·ios·屏幕常亮·禁止息屏
爱笑鱼7 小时前
NDK、SDK、APP、Framework、Native 到底怎么区分?
android
私人珍藏库7 小时前
[Android] 发票制作器-内置多行业专业模板
android·人工智能·app·软件·多功能
悲凉的紫菜9 小时前
dariy
android·ide·android studio
2501_915909069 小时前
IPA 深度混淆是什么意思?从混淆强度到实际效果的解读
android·ios·小程序·https·uni-app·iphone·webview
LT101579744410 小时前
2026年手机机型兼容性测试选型指南:安卓机型碎片化、APP闪退UI错乱如何解决
android·测试工具·ui·智能手机
阿pin11 小时前
Android随笔-view是如何显示到屏幕上
android·view
恋猫de小郭11 小时前
Flutter material/cupertino 解耦最新进展,已经在做新样式了
android·前端·flutter
在书中成长12 小时前
HarmonyOS 小游戏《对战五子棋》开发第17篇 - AI的两种评估策略
android·java·javascript