应用程序构建但崩溃
java.lang.NullPointerException: Attempt to invoke interface method 'void com.example.testdagger1.MaxsControl.AppComponent.inject(com.example.testdagger1.MainActivity)' on a null object reference
应用命令:
@Component(modules ={AppMobile.class, ButtonControl.class})
@Singleton
public interface AppComponent {
void inject(MainActivity mainActivity);
}
应用程序:
public class App extends Application {
private static AppComponent component;
public static AppComponent getComponent()
{
return component;
}
主要活动:
public class MainActivity extends AppCompatActivity {
@Inject
ButtonControl bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
App.getComponent().inject(this);
}
}
ButtonControl(这个类是纯测试):
@Module
public class ButtonControl {
public void ButtonControl(Context Ct)
{
}
}
移动应用:
@Module
public class AppMobile {
private Context appContext;
public AppMobile(Context context)
{
appContext=context;
}
@Provides
Context providesContext()
{
return appContext;
}
@Provides
public ButtonControl provideDownloadfilePresenterImp() {
return new ButtonControl();
}
}
我试图在这篇文章上做点什么,但即使是基本的也没有发生任何事情...... https://habr.com/en/post/279125/
求救!
一切都在关于 Habré 的文章中进行了解释(尽可能解释匕首)。匕首很难理解,其实它是一个很初级的东西。整个原理是基于图的构造。问题转到类文件
App
您的代码描述了一个图形,但谁初始化它?正如我从代码中看到的 - 没有人。你最终是这样的:
MainActivity
App.getComponent()
注入自身。App
发生在终究return component;
归来null
component == null
MainActivity
注入开始,App.getComponent().inject(this);
但实际上它看起来像这样null.inject(this);
并被抛出NullPointerException
。这篇文章有一个
buildComponent()
你没有实现的:文章代码截图:
PS:为了让您以后的工作更轻松,编写更少的样板代码,请查看Dagger Android