Fragment继承DaggerFragment导致应用闪退

Fragment代码

public class TocFragment extends DaggerFragment {
    
    

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    
    
        View view = inflater.inflate(R.layout.fragment_toc, container, false);
        return view;
    }
}

注意排查两个地方有没有写上:
1、生产TocFragment的module

@dagger.Module()
public abstract class TocModule {
    
    
    @FragmentScope
    @ContributesAndroidInjector
    abstract TocFragment contributeTocFragment();
}

2、Fragment所在的activity有没有实现HasAndroidInjector

public class MainActivity extends AppCompatActivity implements HasAndroidInjector {
    
    

    @Inject
    DispatchingAndroidInjector<Object> androidInjector;
    TocFragment tocFragment;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        AndroidInjection.inject(this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState == null){
    
    
            tocFragment = new TocFragment();
            getSupportFragmentManager().beginTransaction().add(R.id.container, tocFragment).commit();
        }
    }

    @Override
    public AndroidInjector<Object> androidInjector() {
    
    
        return androidInjector;
    }
}

猜你喜欢

转载自blog.csdn.net/xlk_1996/article/details/124802518