• java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12


    最近使用Android Studio开发一个新项目,刚做完几个界面,跑在android 5.0上面很正常,因为都是挺简单的布局,本以为应该不存在兼容性问题(Flag啊)。

    偶然用了一个4.x的实机测试,发现杯具了,直接报错退出了,发现log里面打出这么一句:

    java.lang.UnsupportedOperationException: Can't convert to color: type=0x2

    难以理解啊,没办法一步一步调试吧。

    顺便说一下调试要注意的问题,如果compileSdkVersion与实际出错的android版本不符合,是没法设置断点的。

    改为一致之后,一步一步看,最后发现问题出在一个drawable xml文件上,之前是这么写的:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <stroke
            android:width="0.5dp"
            android:color="?colorPrimary" />
    </shape>
    

    也是摸不着头脑,很正常啊。尝试一下吧?colorPrimary改成直接的color引用试一试吧。

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <stroke
            android:width="0.5dp"
            android:color="@color/carnation" />
    </shape>
    

    一运行,果然成功了。

    看起来像是android4.x系统上因为某种原因,无法在drawable xml文件里面使用attr属性,5.x上没有这个问题。

    希望对遇到类似

    can't convert xxx type=0x00

    问题的朋友有所启发和帮助。

    如果有人能够告诉我具体原因,我也会十分感谢(果然android兼容是个大坑啊!

  • 相关阅读:
    centos7 svn服务器的搭建
    fastdfs远程服务器java连接失败的问题
    Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能
    数据库访问辅助类SqlHelper
    实现基本的Ajax和Json请求
    在Asp.Net MVC中使用Repeater控件
    Asp.Net MVC向视图View传值的三种方法
    C#实现加简单的Http请求
    Http协议学习小结
    iOS开发之layoutSubviews
  • 原文地址:https://www.cnblogs.com/DarkMaster/p/4581126.html
Copyright © 2020-2023  润新知