【MVP+Dagger2+Rxjava+Retrofit+GreenDao 开发的小应用,包含新闻、图片、视频3个大模块,代码封装良好】教程文章相关的互联网学习教程文章

java – Dagger 2 – 注入非Android类【代码】

我在我的Android应用程序中恭维Dagger 2.我按以下方式设置它: AppComponent.java@Singleton @Component(modules = {AndroidInjectionModule.class,AndroidSupportInjectionModule.class,ActivityBuilder.class,AppModule.class,DataBaseDaoModule.class })public interface AppComponent {@Component.Builderinterface Builder {@BindsInstanceBuilder application(Application aApplication);AppComponent build();}Application ...

java – 使用Dagger将依赖项注入Singleton?【代码】

是否有可能让Dagger为你注射单身人士? 事实上,我只找到了一种手动为单身人士提供依赖关系的方法:@Provides @Singleton public Dispatcher providesDispatcher(Context context, PPreferences preferences,FileNameCache fileNameCache) {return new Dispatcher(context, preferences, fileNameCache); }这是定义单身人士的唯一方法吗?我更喜欢做的是以下内容,以便Dagger自己注入依赖项,但这样做会给我一个错误.@Provides @Singl...

如何让dagger 2与Android studio java库项目一起使用【代码】

我有一个app模块(这是我的应用程序)和一个java库项目模块(称为api)我想在api模块中使用dagger 2但是注释处理器不工作,匕首前缀类(例如DaggerApiComponent)并没有像人们期望的那样产生.任何帮助将不胜感激,是的,我正在使用gradle.解决方法:最后我设法解决了这个问题,gradle的android-apt插件只有在应用插件时才可用:’com.android.application’被使用.所以在你不能使用com.android.application插件的java库中你需要使用插件apply ...

android – 用Dagger 2和RxJava2包装SharedPreferences【代码】

我是否需要包装Android SharedPreferences类?如果是的话,能否请您提供一个简单的工作示例? 我知道如何使用SharedPreferences,但是当涉及到包装它并提供Dagger 2和RxJava2时,我很困惑.解决方法:我通常只使用名为LocalStorage的接口或类似的东西来包装它.然后将一个Context注入实现并像往常一样实现您的SharedPreferences.如果你想使用Rx,只需确保你的接口方法返回Observables. 然后,只要你需要使用SharedPeferences,只需注入一个L...

java – Dagger 2没有初始化变量【代码】

现在我正在尝试在我的项目中实施匕首,我有一个问题.在应用程序组件中初始化的变量未在我的活动中初始化.这是我的代码.应用:public class MyApplication extends Application {private ApplicationComponent applicationComponent;@Injectpublic Context context;@Overridepublic void onCreate() {super.onCreate();applicationComponent = DaggerApplicationComponent.builder().applicationModule(new ApplicationModule(this))...

如何在java项目中使用IntelliJ中的Dagger2【代码】

我想在IntelliJ中使用Dagger,但我无法使用它. Dagger使用注释处理器,我猜IntelliJ不知道注释处理器. 你可以看到生成的java文件,它是由Dagger2编译器生成的,但是我的java源代码找不到它们.即使我设置build.gradle来连接我的java文件和生成的java文件. 这是我的全部资源project file.apply plugin: 'java'sourceCompatibility = 1.8repositories {mavenCentral()jcenter() }def generatedSources = "$buildDir/generated/src" def ge...

java – Dagger – 从其他类访问Singleton对象【代码】

我一直在努力理解并设置Dagger来处理Android项目的依赖注入.我的单一(没有双关语)目标是创建我可以在我的应用程序中访问的单例对象.我已经在初始活动中成功设置了对象.我被困在哪里是从其他类访问这些对象.这是我到目前为止的设置: 初始App活动public class SplashScreenActivity extends AppCompatActivity {@Inject SessionKeyExchangerService exchangerService;@Overrideprotected void onCreate(Bundle savedInstanceState) ...

java – Dagger 2,supertypeInjector为null【代码】

我正在尝试使用Dagger 2实现DI.我以article为例,但是在生成的类中我得到了NullPointerException. 这是我的堆栈跟踪:E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'void dagger.MembersInjector.injectMembers(java.lang.Object)' on a null object reference E/AndroidRuntime: at me.cullycross.moody.activities.AuthActivity_MembersInjector.injectMembers(AuthAc...

java – 使用Dagger 2时,我应该在哪里移动库初始化?【代码】

我有这个代码初始化Calligraphy默认配置.public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();// The initialization I want to moveCalligraphyConfig.initDefault(new CalligraphyConfig.Builder().setDefaultFontPath("fonts/MyFont.ttf").build());} }我想在我的项目中使用Dagger 2但我不完全理解我应该创建哪些类以及在何处移动此代码以保持项目清洁?解决方法:简而言之,你可...

java – 可选注入Dagger 2【代码】

是否可以选择在匕首2中注入一个值?特别是,我想做这样的事情.@Inject A(Optional<B> b) {this.b = b; }如果模块中的B未定义,我希望dagger给出一个Optional.empty(),如果已定义,则给出Optional.of(value). 这是可行的还是我需要一个定义这些可选值的模块?解决方法:可选注入需要模块向组件添加可选绑定,因为Dagger需要依赖关系图上的每个依赖项,甚至是明确缺少的依赖项.当您想通过实现实现此可选项时,您将向组件(通常是子组件)添加i...

java – Dagger 2 reinit singleton【代码】

我试图将我的用户对象存储为Dagger 2的单例.@Provides@Named("me")@SingletonUser provideUser(PrefsUtil prefsUtil, UserDao userDao) {int id = prefsUtil.getFromPrefs("me", 0);if (id == 0){return new User();}try {return userDao.queryForId(id);} catch (SQLException e) {return new User();}}它工作正常,并使用User对象注入我的类. 但是,在从服务器登录并从服务器获取用户并将其存储在上述方法从中查询的位置之后,它将不...

java – Dagger 2.11:使用@ContributesAndroidInjector时的Local Singleton【代码】

我使用@ContributesAndroidInjector注释(https://google.github.io/dagger/android.html)进行了有效的Dagger设置.Component Application/ \ Subcomponent DrawerActivity Subcomponent SubActivity| Subcomponent DrawerFragment在SubActivity和DrawerActivity中,我使用标记为@Singleton的相同存储库实例.@Singleton @Component(modules = {AndroidInjectionModule.class,AppModule.class,ActivityBuilderMo...

java – Dagger 2:避免导出私有依赖项【代码】

假设我有一个模块,我只想导出A的实例.但是这个A需要在构造函数中传递Band C的实例.所以我们也会在模块中声明它们:public class SampleModule {@Provides@SingletonA provideA(B b, C c){return new A(b, c);}@Provides@SingletonB provideB(){return new B();}@Provides@SingletonC provideC(){return new C(); } }这有效,但现在B和C也可以在代码的其他地方使用.我想将它们保密,并强制客户端类只能访问A. 有没有办法实现这个目标?...

java – Dagger2不生成Daggercomponent类【代码】

Dagger2在Android工作室中没有生成任何组件类我知道它是一个已知问题,而我已经完成了几乎所有方法在我的android工作室中实现并尝试了各种教程但是每次我被击中这里,它都无法构建dagger组件上课.我也尝试重建,清理渐变并使缓存无效,但它没有帮助.这是我的示例项目build.gradlebuildscript { repositories {jcenter() } dependencies {classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'} } apply plugin: 'com.android.ap...

java – Dagger Component具有冲突的范围【代码】

我正在使用Dagger,我有一个带有@Singleton范围的app组件,还有一个带有@Singleton范围的子组件.现在,当我编译它时,我收到此错误:[io.droid.nowtellapp.dagger.SignInMvpComponet]io.droid.nowtellapp.dagger.SignInMvpComponet has conflicting scopes:io.droid.nowtellapp.dagger.ApplicationComponent also has @Singleton要解决此错误,我从子组件中删除了@Singleton并编译了它,这次出现此错误:Error:(12, 1) error: io.droid.n...

封装 - 相关标签
模块 - 相关标签