Can't convert to dimension type=0x1 解决方案

具体异常

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

更具体细节的异常栈我就找不出来了(因为我已经修复好了并且不能复现了哈哈哈哈),只能在网上找了一个类似的。

问题细节

  1. 使用的Mac版的Android Studio 3.x(具体忘记了);
  2. 在工作的时候莫名其妙地出现了这个0x01问题;
  3. 视图将上周能正常允许的分支拉下来重新编译安装,崩溃;
  4. 使用其他手机编译安装,崩溃;
  5. 使用其他电脑编译安装,正常;
  6. 使用gradle的clean操作,崩溃;
  7. 删除build目录下的所有文件重新编译,崩溃;
  8. 将activity的继承从AppCompatActivity该为Activity,正常
  9. 将acitivity的布局文件的dimen引用改为直接数字,无效

分析

分析异常栈,发现toolBar等关键字眼,结合到8、9考虑,初步认为是系统在初始化activity的actionBar的时候,传入了一个无效或者非法的id,导致问题出现。于是初步将问题定位到sdk或者是ide上,准备尝试重新安装ide与sdk,在安装前更新了一下Android Studio,问题解决,具体原因未知。

解决方案与建议

  1. 如果你在使用的Mac版的Android Studio 3.0;
  2. 如果相同的代码,只在你的电脑上编译有问题;
  3. 如果你将activity的继承改为AppCompatActivity,或者将activity的theme改为无actionBar以后不崩溃;
  4. 建议更新Android Studio或者sdk;
  5. 如果更新以后问题依旧,建议重新安装Android Studio;

写在最后

写下这篇博客的主要目的是,当是我遇到这个问题的时候,上网找了半天的解决方案,都没能解决,可能是这个问题比较少见,也有可能有人遇到了同样的问题,但是是没有分享出来。但是无论如何,其实我想说的是,如果大家都有多一点的分享思想,那么这个由我们开发者组成的泛联盟将会变得更加美好。
最后,如果这篇文章能帮到你,这会是我的荣幸。

你可能感兴趣的:(Can't convert to dimension type=0x1 解决方案)