Кинжал с пространством имен Android не работает - PullRequest
0 голосов
/ 31 октября 2018

Мне не удается заставить кинжал работать с androidx.fragment.app.Fragment;

// My dependencies
implementation 'com.google.android.material:material:1.0.0'
...
implementation 'com.google.dagger:dagger-android:2.19'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.19'

// gradle.properties
android.useAndroidX=true
android.enableJetifier=true

// In my Fragment
...
import androidx.fragment.app.Fragment;
...

public abstract class BaseFragment extends Fragment {

   @Override
    public void onAttach(Context context) {
        AndroidInjection.inject(this); // cannot resolve method here, AndroidInjection wants to use AndroidInjection.inject(android.app.Fragment);
        super.onAttach(context);        
    }
}

Такая же ошибка типа фрагмента присутствует в моем классе Activity, таким образом

public class MainActivity extends BaseActivity implements HasFragmentInjector{

    @Inject
    DispatchingAndroidInjector<androidx.fragment.app.Fragment> fragmentInjector;

// incompatible  return type here, AndroidInjector wants to use AndroidInjector<android.app.Fragment>
    @Override
    public AndroidInjector<Fragment> fragmentInjector() { 
        return fragmentInjector;
    }

}

N / B 1.Material Design Components говорит, что я не должен касаться каких-либо библиотек поддержки. (AndroidInjection.inject<android.support.v4.app.Fragment> становится униженным, хотя мой Dagger Component не генерируется).

2.Google says android.app.Fragment is depreciated.

Как мне соединить все, чтобы кинжал работал с пространством имен androidx.

С уважением, George

1 Ответ

0 голосов
/ 12 ноября 2018

Проблема может быть решена в следующей версии (2.20) Dagger. (См .: https://github.com/google/dagger/releases/tag/dagger-2.19)

Пока что я думаю, что лучший способ решить вашу проблему - использовать старую версию (2.16).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...