我正在与其他团队共享一个Android项目。该项目在命令行上完美构建。当我在Android Studio中查看特定的源文件时,此行以红色突出显示为错误:
mAccountSpinner = mView.findViewById(R.id.account_picker);
悬停在错误行上方,Android Studio表示:
Incompatible types.
Required: com.mycompany.AccountPickerView
Found: android.view.View
我的同事没有看到此错误。按住Ctrl键单击findViewById
时,Android Studio将我带到缓存的Android 4源:~/.gradle/caches/modules-2/files-2.1/com.google.android/4.1.1.4/.../View.java
!这是错误的根源,因为此功能的Android 4版本显示为:
public final android.view.View findViewById(int id)
当我的同事这样做时,他们被引导到findViewById
的现代版本:
public <T extends View> T findViewById(@IdRes int id)
我们的项目针对API 28。
我尝试过使缓存无效并重新启动。我已经删除了~/.gradle
文件夹。我什至卸载并重新安装了Android Studio。
关于我在这里犯错的任何建议吗?
答案 0 :(得分:0)
我认为,如果将变量转换为AccountPickerView,则应该可以摆脱此错误。
mAccountSpinner = (AccountPickerView) mView.findViewById(R.id.account_picker);