Olá nesta aula (https://cursos.alura.com.br/course/android-chat/task/22546) aos 7:30 quando tento fazer o acesso à DaggerChatComponent simplemente o Android Studio não encontra essa classe...
Estou utilizando o gradle 3.2.1
Seguem meus códigos:
build.gradle (do módulo app)
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "br.com.caelum.ichatalura"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
// dependência do retrofit
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
// conversor json/objeto e vice versa
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
// dagger para injeção de dependencias
implementation 'com.google.dagger:dagger-android:2.15'
implementation 'com.google.dagger:dagger-android-support:2.15'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.15'
}
MainActivity
package br.com.caelum.ichatalura.ui.activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import br.com.caelum.ichatalura.R;
import br.com.caelum.ichatalura.adapter.MensagemAdapter;
import br.com.caelum.ichatalura.callback.EnviarMensagemCallback;
import br.com.caelum.ichatalura.callback.OuvirMensagemCallback;
import br.com.caelum.ichatalura.component.ChatComponent;
import br.com.caelum.ichatalura.modelo.Mensagem;
import br.com.caelum.ichatalura.service.ChatService;
import retrofit2.Call;
public class MainActivity extends AppCompatActivity {
private int idDoCliente = 1;
private EditText editText;
private Button button;
private ListView listaDeMensagens;
private List<Mensagem> mensagens;
@Inject
public ChatService chatService;
private ChatComponent component;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
component.inject(this);
listaDeMensagens = findViewById(R.id.lv_mensagens);
mensagens = new ArrayList<>();
MensagemAdapter adapter = new MensagemAdapter(idDoCliente, mensagens, this);
listaDeMensagens.setAdapter(adapter);
editText = findViewById(R.id.et_texto);
ouvirMensagens();
button = findViewById(R.id.btn_enviar);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chatService.enviar(new Mensagem(idDoCliente, editText.getText()
.toString()))
.enqueue(new EnviarMensagemCallback());
}
});
}
public void colocaNaLista(Mensagem mensagem) {
mensagens.add(mensagem);
MensagemAdapter adapter = new MensagemAdapter(idDoCliente, mensagens, this);
listaDeMensagens.setAdapter(adapter);
ouvirMensagens();
}
public void ouvirMensagens() {
Call<Mensagem> call = chatService.ouvirMensagem();
call.enqueue(new OuvirMensagemCallback(this));
}
}
ChatComponent
package br.com.caelum.ichatalura.component;
import br.com.caelum.ichatalura.module.ChatModule;
import br.com.caelum.ichatalura.ui.activity.MainActivity;
import dagger.Component;
@Component(modules = ChatModule.class)
public interface ChatComponent {
void inject(MainActivity activity);
}