遇到的错误:
Caused by: java.lang.NoSuchMethodError: No direct method <init>(Landroid/widget/ImageView;Landroid/support/v7/widget/AppCompatDrawableManager;)V in class Landroid/support/v7/widget/AppCompatImageHelper; or its super classes (declaration of 'android.support.v7.widget.AppCompatImageHelper' appears in /data/data/com.fnfh.quanmingzhibo/files/instant-run/dex/slice-com.android.support-appcompat-v7-25.0.0_ff37a3640c2a69bc7d07a3f6d4bea1513297dc43-classes.dex)
at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:133)
at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:110)
问题查找:
- 确认为 FloatingActionButton 的问题,注释 FloatingActionButton 的相关代码 ,看是否 还是报同样的错;
- 错误类型为 error ,可能为 编译器 出现问题;excption 可能为 代码出现问题
- 点击报错内容 可以 看到 FloatingActionButton 的 构造参数发生错误
- 可能原因就是版本问题
- 对于本身的版本 发现没有问题,可以查看 External Libraries ,发现有
25.0.0 的版本,而正常导入的是 23.4.0 的版本。 - android 本身会调用 最高版本的 控件
-
什么原因造成其 为 25.0.0 的design 版本呢?
可能原因是 项目中使用的其他控件有 高版本的,会使用 高版本 design.
8.处理方式:
一 将所有内容 提升到 25.0.0 版本
二 将控件降到 23.4.0 版本