• 安卓7原生相机切到视频崩溃


    目录

    1、查看日志

    2、分析日志、提取重点

    3、寻找解决方法


    1、查看日志

    由于安卓7版本的老旧,存在很多代码上缺陷

    这次碰到在安卓7系统上使用自带的原生相机,从拍照切换到视频时出现崩溃,崩溃日志如下

    1. 12-14 10:03:42.489 432 2337 E ANDR-PERF-MPCTL: Invalid profile no. 0, total profiles 0 only
    2. 12-14 10:03:42.514 572 5555 E mm-camera: <MCT   ><ERROR> 1085: mct_pipeline_decide_hw_wakeup: Couldn't find meta stream
    3. 12-14 10:03:42.521 572 5598 E quadracfa_dummy: inside dummy remosaic_deinit 1
    4. 12-14 10:03:42.547 5483 5483 E AndroidRuntime: FATAL EXCEPTION: main
    5. 12-14 10:03:42.547 5483 5483 E AndroidRuntime: Process: com.android.camera2, PID: 5483
    6. 12-14 10:03:42.547 5483 5483 E AndroidRuntime: android.content.res.Resources$NotFoundException: Drawable com.android.camera2:drawable/ic_capture_video with resource ID #0x7f020050
    7. 12-14 10:03:42.547 5483 5483 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_capture_video.xml from drawable resource ID #0x7f020050
    8. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:725)
    9. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:571)
    10. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.content.res.Resources.getDrawable(Resources.java:771)
    11. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.content.res.Resources.getDrawable(Resources.java:742)
    12. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.camera.ui.BottomBar.setShutterButtonIcon(BottomBar.java:493)
    13. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.camera.app.CameraAppUI.setBottomBarShutterIcon(CameraAppUI.java:1880)
    14. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.camera.app.CameraAppUI.resetBottomControls(CameraAppUI.java:1821)
    15. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.camera.CameraActivity.onModeSelected(CameraActivity.java:2456)
    16. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.camera.app.CameraAppUI.onModeSelected(CameraAppUI.java:1560)
    17. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.camera.ui.ModeListView.onModeSelected(ModeListView.java:1266)
    18. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.camera.ui.ModeListView.-wrap13(ModeListView.java)
    19. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.camera.ui.ModeListView$PeepholeAnimationEffect$8$1.run(ModeListView.java:2158)
    20. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.os.Handler.handleCallback(Handler.java:751)
    21. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:95)
    22. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:154)
    23. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:6187)
    24. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
    25. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
    26. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
    27. 12-14 10:03:42.547 5483 5483 E AndroidRuntime: Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #25:  requires a valid 'src' attribute
    28. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.graphics.drawable.BitmapDrawable.updateStateFromTypedArray(BitmapDrawable.java:787)
    29. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:747)
    30. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.graphics.drawable.DrawableInflater.inflateFromXml(DrawableInflater.java:130)
    31. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1227)
    32. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.graphics.drawable.StateListDrawable.inflateChildElements(StateListDrawable.java:188)
    33. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:116)
    34. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.graphics.drawable.DrawableInflater.inflateFromXml(DrawableInflater.java:130)
    35. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1227)
    36. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1200)
    37. 12-14 10:03:42.547 5483 5483 E AndroidRuntime:        at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:715)
    38. 12-14 10:03:42.547 5483 5483 E AndroidRuntime: ... 18 more
    39. 12-14 10:03:42.914 1184 1368 E libnav  : CablComputeBacklightLevel(): UpdateType = DifferentSceneUpdate
    40. 12-14 10:03:43.057 432 2337 E ANDR-PERF-MPCTL: Invalid profile no. 0, total profiles 0 only
    41. 12-14 10:03:43.249 1609 2060 E LocSvc_eng: E/Calling gnss_sv_status_cb
    42. 12-14 10:03:43.250 1609 2060 E IzatSvc_PassiveLocListener: E/Exiting with error virtual void izat_manager::IzatPassiveLocationListener::onLocationChanged(const izat_manager::IzatLocation *, const IzatLocationStatus) line 172 "1"

    2、分析日志、提取重点

    其中造成崩溃的原因主要是如下内容,实际过程中日志更多,需要能提取有效日志进行分析

    12-14 10:03:42.547 5483 5483 E AndroidRuntime: Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_capture_video.xml from drawable resource ID #0x7f020050

    12-14 10:03:42.547 5483 5483 E AndroidRuntime: E AndroidRuntime:

    3、寻找解决方法

    其实很多原生系统引起的问题,并不是个例,属于历史遗留的潜在bug,不过毕竟是开源,所以很多开发者也会将问题和解决方案在github社区进行提交并解决,本次解决方法,就是在github上查询code发现已经有社区工作者发现了问题并提交了的代码。需要善于利用现有的工具和搜索方法帮助自己找到答案。

    Camera2: Bitmaps renamed due crash when switching to Video Capture mo… by rINanDO · Pull Request #6 · CyanogenMod/android_packages_apps_Camera2 · GitHub

    1. <item>
    2. <bitmap
    3.             android:gravity="center"
    4.             android:src="@drawable/ic_capture_video" />
    5.             android:src="@drawable/ic_capture_video_enabled" />
    6. </item>
    7. </selector>

  • 相关阅读:
    跨站请求伪造(CSRF)攻击与防御原理
    es head 新增字段、修改字段、批量修改字段、删除字段、删除数据、批量删除数据
    面试官:做过性能优化?我:任务切片!
    JAVA设计模式1:单例模式,确保每个类只能有一个实例
    【编程题】【Scratch四级】2020.09 创意画图
    MySQL习题
    Oceanbase体验之(二)Oceanbase集群的搭建(社区版4.2.2)
    迅为RK3568开发板Android11触摸移植-配置设备树
    Spring底层原理学习笔记--第七讲--(初始化与销毁)
    JS | “鼠标跟随”案例以及“留言板”案例
  • 原文地址:https://blog.csdn.net/qq_40715266/article/details/136564161