android - 使用 Dagger 2 注入 Androidx 片段
问题描述
我想使用 dagger 2 注入我的 Androidx 片段。在我的活动中,我有:
public class MainActivity extends AppCompatActivity implements HasSupportFragmentInjector
{
@Inject Repository repository;
@Inject DispatchingAndroidInjector<androidx.fragment.app.Fragment> dispatchingAndroidInjector;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public AndroidInjector<androidx.fragment.app.Fragment> supportFragmentInjector()
{
return dispatchingAndroidInjector;
}
}
问题是当我想构建项目时出现此错误:
error: cannot find symbol class MapBuilder
当我在 DispatchingAndroidInjector中将 androidx.fragment.app.Fragment更改为Fragment时,我不再收到此错误。
解决方案
尚不支持 Androidx,但启用 jetifier 可能会解决您的问题。
只需将以下代码添加到您的gradle.properties
android.useAndroidX=true
android.enableJetifier=true
另请参阅这些问题以了解详细信息:
推荐阅读
- nosql - DynamoDB - 当我删除 GSI 中的对象时会发生什么?它是否“级联”到主表?
- java - 如何替换包括双引号的字符?
- android - 使用支持 Androidx 的插件构建 Flutter 的最佳方式是什么?
- azure - 从 Azure DevOps 限制对 Azure 的部署权限
- javascript - 将数据从 2 个对象数组移动到第三个数组
- android - 在 osmdroid 中设置多个标记
- sql - 为每个 ID 插入新记录的 SQL 脚本
- php - 显示收到的友谊请求数量的片段
- javascript - 如何删除除第一个元素之外的所有子元素?
- react-native - 在渲染功能之外导航