Пытаюсь ставить clean architor
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.testclean3.Presentation.UndeMainPresentation.GetCorework(java.lang.String)' on a null object reference
Вот это получаю, при обращении к undeMainPresentation.GetCorework(Ss);:
public class MainPresntation {
@Inject UndeMainPresentation undeMainPresentation;
public MainPresntation()
{
// this.undeMainPresentation= ApplicationComponent.getUndeMainPresentation();
AndroidApplication.applicationComponent.inject(this);
}
public void MakeControl(String Ss)
{
undeMainPresentation.GetCorework(Ss);
}
}
MainActivity:
public class MainActivity extends AppCompatActivity {
public MainPresntation mainPresntation;
private ApplicationComponent applicationComponent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.applicationComponent= AndroidApplication.getApplicationComponent();
this.mainPresntation=new MainPresntation();
}
public void OnClick(View V)
{
mainPresntation.MakeControl("wefefwfwe");
}
}
ApplicationModule:
@Module
public class ApplicationModule
{
private final Application application;
public ApplicationModule
(Application application) {
this.application = application;
}
@Provides @Singleton Context provideApplicationContext() {
return this.application;
}
@Provides @Singleton ThreadExecutor provideThreadExecutor(JobExecutor jobExecutor) {
return jobExecutor;
}
@Provides @Singleton PostExecutionThread providePostExecutionThread(UIThread uiThread) {
return uiThread;
}
@Provides
Repositor provideRepositor(Repositor repositor) {
return repositor;
}
@Provides
WorkDomain provideWorkDomain(WorkDomain workDomain) {
return workDomain;
}
@Provides
UndeMainPresentation prvideUndeMainPresentation(UndeMainPresentation undeMainPresentation)
{
return undeMainPresentation;
}
}
ApplicationComponent:
@Singleton
@Component(modules = ApplicationModule.class)
public interface ApplicationComponent {
void inject(MainActivity mainActivity);
Context context();
ThreadExecutor threadExecutor();
PostExecutionThread postExecutionThread();
void inject(UndeMainPresentation undeMainPresentation);
void inject(Repositor repositor);
void inject(WorkDomain workDomain);
void inject(MainPresntation mainPresntation);
}
И напоследок :
public class UndeMainPresentation {
private WorkDomain workDomain;
@Inject public UndeMainPresentation(WorkDomain workDomain)
{
this.workDomain = workDomain;
}
public void GetCorework(String sss)
{
workDomain.execute(new UserListObserver(),null);
}
private final class UserListObserver extends DefaultObserver<Data_Work> {
@Override public void onComplete() {
}
@Override
public void onNext(Data_Work data_work) {
}
@Override public void onError(Throwable e) {
}
}
}
В чем Я ошибаюсь?
P.S. AndroidApplication, но уже переделанном виде , а не такой какой был в момент создания вопроса:
public class AndroidApplication extends Application {
private static ApplicationComponent applicationComponent;
public static UndeMainPresentation undeMainPresentation;
@Override public void onCreate() {
super.onCreate();
this.applicationComponent = DaggerApplicationComponent.builder()
.applicationModule(new ApplicationModule(this))
.build();
applicationComponent.inject(undeMainPresentation);
}
public static ApplicationComponent getApplicationComponent()
{
return applicationComponent;
}
public static UndeMainPresentation getUndeMainPresentation()
{
return undeMainPresentation;
}
}
P.S.S Класс AndroidApplication находиться в папке Dagger2 Манифест приложения:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testclean3">
<application
android:name=".Dagger2.AndroidApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Необходимо сделать кнопку "создать" не активной в том случае, если выбрано одно из двух значений “Выбрать месяц”/“Выбрать год” или выбрано...
Для сотрудников был сделан скрипт, для формирования email письмаЗаполняем поля, а ниже формируется письмо в формате html (подставляются данные...
С прошлым примером все получилось, поэкспериментировал - вроде бы все работаетРешил применить в задаче