小编Saj*_*Zeb的帖子

解析失败:Lcom/google/common/collect/ImmutableMap;在 com.my.app.di.DaggerMyApplicationComponent.getMapOfClassOfAndProviderOfFactoryOf(

在集成 Dagger 2 以在运行应用程序时实现 ImageDownloader 库的依赖注入后,我遇到了这个问题。

\n\n

这就是我所做的:

\n\n

在 build.gradle 中。我添加了这些行:

\n\n
implementation "com.google.dagger:dagger:2.16"\nimplementation "com.google.dagger:dagger-android-support:2.16"\nannotationProcessor "com.google.dagger:dagger-compiler:2.16"\nannotationProcessor "com.google.dagger:dagger-android-processor:2.16"\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的类 API,我想在其中将依赖项与活动类分开:

\n\n
public class ImageDownloaderApi {\n\n    @Inject\n    public ImageDownloaderApi(){\n    }\n\n    //some other methods here\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在我的中MainActivity我添加了这些行:

\n\n
public class MainActivity extends Activity {\n\n    @Inject\n    ImageDownloaderApi imageDownloaderApi;\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        AndroidInjection.inject(this);\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后创建了一个Application对象:

\n\n
public class MyApplication extends Application {\n\n    @Override\n    public void onCreate() {\n        super.onCreate();\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

Application然后通过清单注册该类,如下所示:

\n\n …

java android dependency-injection android-studio dagger-2

2
推荐指数
1
解决办法
3185
查看次数

Where to inject AndroidInjection in custom/util classes using dagger2 in java android

I am using dagger 2. And injecting my dependency in activities and fragments which is working fine.

AndroidInjection.inject(this) for activities inside onCreate.

// for the activity
override fun onCreate(savedInstanceState: Bundle?) {
    AndroidInjection.inject(this)
    super.onCreate(savedInstanceState)
}
Run Code Online (Sandbox Code Playgroud)

AndroidSupportInjection.inject(this) for fragments inside onAttach.

// for fragments
override fun onAttach(context: Context?) {
    AndroidSupportInjection.inject(this)
    super.onAttach(context)
}
Run Code Online (Sandbox Code Playgroud)

Now i want to inject my same dependency in a custom or util class named AsyncTaskHandler. I am not able to access that dependency.

I suppose i …

java android class dagger-2

1
推荐指数
1
解决办法
868
查看次数