Can't convert to dimension t
2018-06-25 本文已影响23人
Van96
具体异常
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.trill.trillapp/com.trill.trillapp.activities.TrillDetailArticle}:
java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
更具体细节的异常栈我就找不出来了(因为我已经修复好了并且不能复现了哈哈哈哈),只能在网上找了一个类似的。
问题细节
- 使用的Mac版的Android Studio 3.x(具体忘记了);
- 在工作的时候莫名其妙地出现了这个0x01问题;
- 视图将上周能正常允许的分支拉下来重新编译安装,崩溃;
- 使用其他手机编译安装,崩溃;
- 使用其他电脑编译安装,正常;
- 使用gradle的clean操作,崩溃;
- 删除build目录下的所有文件重新编译,崩溃;
- 将activity的继承从AppCompatActivity该为Activity,正常
- 将acitivity的布局文件的dimen引用改为直接数字,无效
分析
分析异常栈,发现toolBar等关键字眼,结合到8、9考虑,初步认为是系统在初始化activity的actionBar的时候,传入了一个无效或者非法的id,导致问题出现。于是初步将问题定位到sdk或者是ide上,准备尝试重新安装ide与sdk,在安装前更新了一下Android Studio,问题解决,具体原因未知。
解决方案与建议
- 如果你在使用的Mac版的Android Studio 3.0;
- 如果相同的代码,只在你的电脑上编译有问题;
- 如果你将activity的继承改为AppCompatActivity,或者将activity的theme改为无actionBar以后不崩溃;
- 建议更新Android Studio或者sdk;
- 如果更新以后问题依旧,建议重新安装Android Studio;
写在最后
写下这篇博客的主要目的是,当是我遇到这个问题的时候,上网找了半天的解决方案,都没能解决,可能是这个问题比较少见,也有可能有人遇到了同样的问题,但是是没有分享出来。但是无论如何,其实我想说的是,如果大家都有多一点的分享思想,那么这个由我们开发者组成的泛联盟将会变得更加美好。
最后,如果这篇文章能帮到你,这会是我的荣幸。