Android 最低版本从 5.0 降至 4.2 将会引发的问题总结
Android 总结 版本 引发 5.0 4.2 最低 将会
2023-09-11 14:22:56 时间
今天把代码放到设备上去调试的时候报: java.lang.NoClassDefFoundError: java.util.Objects 的错误。
(现有的设备很多都还是 Android 4.2,API 17 的,很多函数都不支持很是蛋疼)
通过在报错的地方打上断点进行调试,F7进入函数。可以发现当走到这一步后,接着按F8执行下一步函数,立马就跳到 ActivityThread.java 页面,然后抛出异常。
Objects.requireNonNull 这个静态方法,支持在 API 21 (Android 5.0.+)以上,Android 4.2.2(即 Android 17)并不支持该方法(此外 Objects.equals 也不支持)
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
WebViewCacheInterceptorInst.getInstance().init(builder);
}
Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 19
总结:如果你的手机要兼容 Android 5.0 以下的设备
不支持的库 | 最低API版本 | 代替方案 |
---|---|---|
com.squareup.retrofit2:retrofit | 21 | MyUrlConnection |
com.squareup.okhttp3:okhttp | 21 | MyUrlConnection |
ren.yale.android:cachewebviewlib | 21 | webview原生cache |
不支持的方法 | 最低API版本 | 代替方案 |
---|---|---|
window.setStatusBarColor | 21 | 不设置状态栏 |
System.lineSeparator() | 19 | 使用\n |
webView.evaluateJavascript | 19 | 使用 loadUrl 替代,但 loadUrl 最多支持2M |
popupWindow.showAsDropDown(anchor, xoff, yoff, gravity) | 19 | 使用showAsDropDown(anchor, xoff, yoff) 代替 |
不支持的路径 | 最低API版本 | 指代的路径 |
:– | :– | :– |
context.getDataDir() | 24 | /storage/emulated/0/Android/data/包名/cache |
context.getCodeCacheDir() | 21 | /data/user/0/包名/code_cache |
context.getNoBackupFilesDir() | 21 | /data/user/0/包名/no_backup |
context.getExternalCacheDir() | 14 | /storage/emulated/0/Android/data/包名/cache |
context.getDownloadDir() | 14 | /storage/emulated/0/Android/data/包名/files/Documents |
腾讯信鸽推送(由于在某些小众设备兼容性没处理好,会崩溃)
samsung SM-G9350,API24 加载大于10KB图片就崩溃的问题
相关文章
- Android 开源项目android-open-project解析之(二) GridView,ImageView,ProgressBar,TextView
- 技术分享 | app自动化测试(Android)-- 参数化用例
- Android自己定义Toast
- Android Camera 拍照 三星BUG总结
- Android菜单详解(一)——理解android中的Menu
- Android USB转串口开发(hoho.android.usbserial串口库)
- Android如何让真机显示debug log的调试信息
- 基于Android的科学计算器【100010762】
- Android JNI 数组操作
- Android之ContentProvider总结
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
- 金九银十必备!大厂面试官编写938页Android实战总结笔记
- Android游戏开发cocos-2d中精灵的动作测试
- 【Android】Greendao:SQLite Exception: no such table
- Android设计模式总结
- android 在非UI线程更新UI仍然成功原因深入剖析
- Android应用程序启动过程(一)总结
- 关于android的屏幕保持常亮
- Android Studio 错误: 非法字符: 'ufeff' 解决方式|错误: 须要class, interface或enum
- Android自己定义组件系列【4】——自己定义ViewGroup实现双側滑动
- android_我的第一个Android程序