如何使用dagger2对循环依赖进行建模?假设我们只有两个类。第一次注入是通过构造函数,第二次是通过方法,如下例所示: class A{
private B b;
@Inject
public A(B b)
{
this.b = b;
}
}
class B{
private A a;
@Inject
public B() { }
@Inject
public void injectA(A a)
{
this.a = a;
}
}
假设我有以下类:
class Foo {}
class Bar {
Foo mFoo = new Foo();
}
class MyActivity extends AppCompatActivity {
Bar mBar = new Bar();
@Override
protected void onCreate (Bundle savedInstance) {
super(savedInstance);
}
}
从上面的代码可以看出,MyActivity依赖于Bar,Bar依赖于Foo。使用Dagger2实现依
我正在开发Android应用程序。我使用Dagger2进行依赖注入。我可以使用这个库,但我不知道如何注入嵌套类。
public class Parent {
@Inject
public Parent()
{}
public String getParent() {
return "fifth";
}
class ParentSubClass{
@Inje
我正在学习Dagger2 with MVVM Architecture。我有一个问题,我正在看一些文档和视频。
我知道我们可以为一些外部的东西减少大量的样板代码,比如单例模式和其他一些我们将在整个应用程序中使用的东西。
我正在开发一个用于学习目的的应用程序,我正在使用MVVM和Dagger2。我的问题是:对于注入视图模型提供者,我们需要编写太多的样板代码来注入视图模型提供者,并且它将只对该活动生命周期可用。我们可以通过简单的代码来实现这一点。我们为什么要使用Dagger2,它的实际用途是什么?我搜索了一下,没有找到任何有用的东西。
下面是我使用dagger2编写的代码:
@Inject
Vie
我正在为DI使用dagger2,并为单个活动进行开发。所以我在启动主活动时注入了一个片段,这个片段也注入了这个视图模型。但是当我在匕首碎片中注入一个视图模型时,就出现了这个问题。如果我不使用constuctor @Inject in dagger片段,ViewModel可以正常工作,但不能在MainActivity上注入。如果我使用constuctor @Inject in dagger片段,ViewModel将无法工作,并得到如下错误
A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExe
我只是在玩,试着更好地了解Dagger2。我在网上找到了一个Bar依赖于BarDatabase的简单例子。
public class Bar {
// Bar depends on BarDatabase
private BarDatabase db;
@Inject
public Bar(BarDatabase db) {
this.db = db;
}
public BarDatabase getBar() { return db; }
public Cock
我正在尝试将Dagger2合并到我的应用程序中,但是除非我手动调用inject(),否则我试图注入的对象总是null。我认为inject()只对系统创建的活动/服务/片段是必需的。是否需要手动注入所有具有依赖关系的类?
下面是我的简单例子:
public class Foo {
@Inject Bar bar;
...
}
我有一个模块可以提供Bar
@Module
public final class BarModule {
public BarModule() {}
@Provides
Bar provideBar () {
return new Bar()
我不熟悉Dagger2,现在我想试一试。到目前为止,一切都是例外。
现在,我想在我的片段中使用CursorLoader,而且(当然)我在ContentProvider中插入数据库时遇到了问题。到目前为止,我可以在调用类中注入所有内容,但是现在我不知道在哪里注入我的dbHelper类。这是我得到NPE的两个片段。
// My Fragment code... works fine
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(getCo
我试图添加Dagger2。但是,我无法发现这个编译错误:MainActivityModule must be set,它发生在我的MainActivity中。如果有人试图揭露这一错误的话。我会很高兴的。
My MainActivity
public class MainActivity extends BaseActivity {
@Inject
JsonMethods mJsonMethods;
...
in OnCreate
Weather.getComponent().injectMainActivity(this);
我的天气类
public class Weather extend
我正在使用Retrofit并通过Dagger2注入RestAdapter和WebService类/接口
在测试中,我将我的web服务类模拟为MockWebService200 implements WebService,并从Retrofit获得此异常
java.lang.IllegalArgumentException: Only interface endpoint definitions are supported.
at retrofit.Utils.validateServiceClass(Utils.java:102)
at retrofit.Rest
我正在使用匕首2,并注入我的依赖活动和碎片,这是很好的工作。
AndroidInjection.inject(this)用于onCreate中的活动。
// for the activity
override fun onCreate(savedInstanceState: Bundle?) {
AndroidInjection.inject(this)
super.onCreate(savedInstanceState)
}
AndroidSupportInjection.inject(this)用于onAttach中的片段。
// for fragments
overrid
我正在尝试MVVM,Dagger2,Retrofit和Coroutine。现在我有一个问题,我可以成功地将ProfileService注入到我的活动中,但不能注入到我的存储库中。我得到了一个profileService lateinit property has not been initialized //MainActivity
@Inject
lateinit var profileService: ProfileService //only for testing
override fun onCreate(savedInstanceState: Bundle?) {
su
我想在属性上使用@Value,但是我总是得到0(在int上)。
但是在构造函数参数上,它可以工作。
示例:
@Component
public class FtpServer {
@Value("${ftp.port}")
private int port;
public FtpServer(@Value("${ftp.port}") int port) {
System.out.println(port); // 21, loaded from the application.properties.
我熟悉Spring依赖注入,但是Dagger2对我来说是新的。我试图让一个简单的java应用程序工作,但是字段注入不起作用。
我有一个类Main,它依赖于一个类MainBusiness,而这个类又依赖于MainDao。
MainBusiness被注入到Main中,但是MainDao不会被注入MainBusiness并抛出一个NullPointerException。
下面是实现interface IMainDao的interface
public class MainDao implements IMainDao
{
@Inject
public MainDao(
所以我找不到代码中的问题,我一定是遗漏了什么。这是定位器视图模型:
using Airport.FlightService;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Ioc;
using Microsoft.Practices.ServiceLocation;
namespace Airport.ViewModel
{
public class ViewModelLocator
{
public ViewModelLocator()
{
ServiceLocator.SetLocatorProvid
我刚刚开始学习如何使用Dagger,我已经将我的Backend连接类转换为自动注入。
该类处理重定向并执行网络请求。它过去有静态的方法,但现在它是一个对象,例如:
Backend.fetchPost(context, 42); // old way
mBackend.fetchPost(42); // mBackend is an injected field
上下文用于检索AccountManager,它为后端服务器提供OAuth令牌。现在这是自动注入。
这在活动和片段中运行得很好,但我不知道如何注入我的SyncAdapter类。
实际上,它是一个我无法控制的框架对象,而且AndroidIn
我尝试在我的应用程序中使用Dagger、Retrofit和VMMV结构,但我不知道在这种情况下如何使用Retrofit。我有我的模块和接口,我可以在其中实现对API的调用。我以前使用过Dagger,我想我应该有一个组件来连接我的ApiCalls和我想要使用它的MainViewModel。我找对地方了吗?如果不是,我应该如何与我的ViewModel进行绑定,以获得带有凭据的Observable?
我的NetworkModule
@Module
object NetworkModule{
/**
* Provides the Post service implementatio