Android Studio标记findviewbyid转换为多余,但它们不是

时间:2017-10-18 15:31:21

标签: android android-studio-2.3

所以我有这个代码: android studio marks casts as redundant.

但是如果我删除强制转换,我会收到编译错误:

  

错误:(42,29)类型不匹配:无法从View转换为Button

     

错误:任务':app:transformJackWithJackForDebug'执行失败。   com.android.build.api.transform.TransformException:com.android.builder.core.JackToolchain $ ToolchainException:Jack编译异常

我做错了什么? Android Studio v2.3.3

3 个答案:

答案 0 :(得分:1)

Android< = 25上的View#findViewById声明

View findViewById(int resId);

要求使用显式强制转换。

Android上的声明> = 26

<T> T findViewById(int resId);

它会为您执行不安全的转换,并返回分配的预期值。

如果编译级别为26,则表示您将使用新方法。

答案 1 :(得分:0)

Id buttonLoad的元素可能不是Button而是View。

如果不是解决方案,请提供布局代码

答案 2 :(得分:0)

所以解决方案只是清理和重建项目。感谢Fatih Ozcan