Hilt - 返回空对象引用的字段注入
Hilt - Field injection returning a null object refernece
这是我第一次使用 Hilt
进行 DI,我不确定我做错了什么。我正在尝试 Field inject
我的 TestClass
到我的 MainActivity
,但是当我调用注入的 TestClass
的方法时它给了我一个空对象引用
我已经确保创建了一个 BaseApplication
class,其中包含注释 HiltAndroidApp
@HiltAndroidApp
public class BaseApplication extends Application {
...
}
我正在尝试将 class 注入我的 MainActivity
import javax.inject.Inject;
public class TestClass {
@Inject
public TestClass() {
}
public String getName(){
return "Hello World";
}
}
并在我的 MainActivity
中使用 FieldInjection
:
@AndroidEntryPoint
public class MainActivity extends AppCompatActivity implements TestAdapterCallback {
@Inject
TestClass testClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
Timber.d(testClass.getName()); //Giving a null object reference
...
我在 youtube 上关注了一个正在执行场注入的教程。不确定我在这里做错了什么。
我只在需要添加
时才在我的依赖项中添加 implementation 'com.google.dagger:hilt-android:2.37'
apply plugin: 'com.android.application'
apply plugin: 'dagger.hilt.android.plugin'
...
dependencies {
implementation 'com.google.dagger:hilt-android:2.37
annotationProcessor 'com.google.dagger:hilt-compiler:2.37'
}
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.37'
}
}
这是我第一次使用 Hilt
进行 DI,我不确定我做错了什么。我正在尝试 Field inject
我的 TestClass
到我的 MainActivity
,但是当我调用注入的 TestClass
我已经确保创建了一个 BaseApplication
class,其中包含注释 HiltAndroidApp
@HiltAndroidApp
public class BaseApplication extends Application {
...
}
我正在尝试将 class 注入我的 MainActivity
import javax.inject.Inject;
public class TestClass {
@Inject
public TestClass() {
}
public String getName(){
return "Hello World";
}
}
并在我的 MainActivity
中使用 FieldInjection
:
@AndroidEntryPoint
public class MainActivity extends AppCompatActivity implements TestAdapterCallback {
@Inject
TestClass testClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
Timber.d(testClass.getName()); //Giving a null object reference
...
我在 youtube 上关注了一个正在执行场注入的教程。不确定我在这里做错了什么。
我只在需要添加
时才在我的依赖项中添加implementation 'com.google.dagger:hilt-android:2.37'
apply plugin: 'com.android.application'
apply plugin: 'dagger.hilt.android.plugin'
...
dependencies {
implementation 'com.google.dagger:hilt-android:2.37
annotationProcessor 'com.google.dagger:hilt-compiler:2.37'
}
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.37'
}
}