我已将我的项目升级到
classpath 'com.android.tools.build:gradle:4.2.0'
我在 utils 文件中有一个静态方法:
public static void launchFragment(BaseFragment fragment, NavDirections directions) {
NavHostFragment.findNavController(fragment).navigate(directions);
}
从今天早上开始,如果我正在使用
ActivityUtils.launchFragment(this, ProfileFragmentDirections.accountAction());
这很好,但如果我用这样的参数调用一个动作
ActivityUtils.launchFragment(this, MainHostFragmentDirections.webAction(getString(R.string.info_moderation), WebFragment.MODERATION));
我在 IDE 上有错误
Cannot resolve method 'launchFragment(fr.tmly.androidapp.ui.main.activity.MainActivity, fr.tmly.androidapp.ui.main.fragment.MainHostFragmentDirections.@androidx.annotation.NonNull WebAction)'
错误说明
fr.tmly.androidapp.ui.main.fragment.MainHostFragmentDirections.@androidx.annotation.NonNull WebAction
不是 NavDirections 类,但我可以构建编译并运行项目,如果我检查调试器
解决此错误的解决方案是添加这样的 (NavDirections) 转换
ActivityUtils.launchFragment(this, (NavDirections) MainHostFragmentDirections.webAction(
getString(R.string.info_moderation), WebFragment.MODERATION));
但是我在我的应用程序中到处都使用这种方法,我不想在任何地方添加手动转换,我该怎么办?在 gradle 升级之前我没有这个错误。