Dúvidas frequentes

Cursos Udemy

Algumas aulas são gravadas no Windows, mas eu tenho um Mac/Linux

Não se preocupe, os softwares usados durante o curso não possuem funcionalidades específicas baseadas no sistema operacional. Uma vez que os softwares (IntelliJ, Android Studio) são instalados na máquina, sua utilização se torna transparente da plataforma.

Para as aulas de instalação de softwares, existem aulas específicas para cada plataforma, uma vez que o passo a passo da instalação é diferente do sistema operacional.

Qualidade do vídeo está um pouco baixa

A plataforma Udemy considera a qualidade da conexão no momento de fazer a exibição do vídeo. Assim, se sua conexão não for considerada rápida, a plataforma adapta a resolução do vídeo para que o download seja feito mais rápido. Se isso acontecer, clique na engrenagem no canto inferior do vídeo em "Configurações" e selecione 1080p. Isso fará com que o vídeo seja exibido em full HD.

O curso possui certificado? Não consigo emitir o certificado.

Cursos gratuitos não possuem certificações por limitação da plataforma Udemy. Os termos oficiais podem ser encontrados aqui.

Não é possível fazer a instalação do HAXM

A primeira etapa para a instalação do HAXM é seu processador ser capaz de virtualizar processos. Se seu processador não possui essa funcionalidade (virtualização), sem problemas, você pode somente criar o emulador no Android Studio e rodar normalmente. Processadores Intel possuem a funcionalidade de virtualização.

Se seu processador é Intel e mesmo assim a instalação acusa que não é possível, seu antivírus pode estar impedindo (tente desabilitar momentaneamente) ou sua placa mãe está com a opção desabilitada. Vá até a BIOS durante o boot do computador e habilite a virtualização.

Se você já estiver utilizando uma máquina virtual, seu emulador já está sendo virtualizado, não é necessário instalar.

Posso usar Java e Kotlin no mesmo projeto?

Sim! A linguagem Kotlin é compilada para bytecode que é a mesma linguagem de máquina para qual Java também é compilada. Assim, Kotlin e Java se comportam da mesma maneira após a compilação e também quer dizer que se comunicam muito bem.

Criei um projeto e está usando ConstraintLayout

A partir do Android Studio 2.3.1, todo novo projeto criado faz uso do ConstraintLayout. Essa mudança faz parte de uma estratégia em padronizar o uso dos layouts para Constraint.

Para acompanhar as aulas do curso basta trocar o Layout da activity para LinearLayout ou RelativeLayout. Os conceitos continuam válidos e esses Layouts não serão descontinuados, ou seja, podem ser usados sem problema algum nos projetos atuais.

Erro: java.lang.NullPointerException

O erro mais comum da programação Java. Algum método ou propriedade foi acessada sem que a variável tenha sido instanciada.

Uma vez que esse erro possui várias soluções, a melhor coisa a fazer é analisar o erro que o Android Studio está apresentando no logcat e navegar até a linha. Uma vez encontrado o ponto onde o erro ocorreu, rodar o projeto em modo debug para ver qual a variável e momento exato para então resolver.

Android Studio e Emulador ocupando muita memória

Android Studio e Emulador quando rodando juntos ocupam aproximadamente 4GB de memória RAM. São softwares pesados que necessitam de processamento forte e memória. Este é o comportamento esperado.

Conversão desnecessária ao usar findViewById (casting redundant)

A partir da API 26 e do Android Studio 3.0, não é mais necessário fazer a conversão do tipo de elemento ao usar findViewById. Atualmente as aulas do curso possuem esse código, pois foi gravado antes das versões descritas acima.

Erro ao visualizar a preview do layout

Nestes casos, é quase certo de que existe algum elemento no layout que não está escrito corretamente. Procure por notificações em vermelho no XML, certifique-se de que todos os elementos foram fechados corretamente.

Posso rodar a aplicação em um dispositivo físico? No meu celular?

Pode sem problemas! Esse é o melhor cenário onde sua aplicação vai rodar mais rápido do que qualquer emulador.

Basta conecta o celular no computador que o Android Studio disponibiliza a opção no momento de rodar a aplicação. Então basta escolher o dispositivo físico.

Preciso do emulador para acompanhar o curso?

Não, porém sem o emulador a única opção de rodar as aplicações é usando um dispositivo físico. Caso não tenha um dispositivo Android nem emulador, não é possível ver sua aplicação funcionando e boa parte da experiência se perde.

Posso usar o Android Studio para somente para programar Kotlin?

Não. Android Studio só é capaz de criar aplicações Android e não suporta criar projetos somente Kotlin sem dependências. Para casos como esse, IntelliJ é a IDE mais recomendada. É mais leve e construída para aplicações deste tipo.

Erro ao criar o projeto

Nenhum projeto no Android Studio é criado com erro. Se o projeto foi criado e possui erro de compilação, existe um problema na instalação. Nesse caso, o recomendado é refazer a instalação da IDE.

Posso abrir a janela de comando "git bash" no Linux ou Mac?

Infelizmente a ferramenta git bash com cores e formatação só está disponível no Windows. Apesar dos comandos e conceitos serem os mesmos, essa ferramenta mais "gráfica" só está disponível no Windows.

Criei / clonei um repositório e já apareceu o nome "master"

Ao criar um repositório, master é a primeira branch criada por padrão. É uma convenção que a branch master seja a principal do projeto, embora o nome pode ser alterado a qualquer momento.

Ao clonar um repositório, a não ser que seja explicitamente configurado, a primeira branch a ser clonada para a máquina local é sempre a master.

Qual a diferença entre os comandos "git checkout" e "git reset"?

Ambos git checkout e git reset tem o poder de desfazer alterações, porém com pequenas diferenças.

Quando executamos "git checkout" em um arquivo, estamos voltando ele para a versão que a sua branch está, em outras palavras o estado original dele, mas caso esse arquivo tenha sido adicionado recentemente, ele não possui um estado anterior. O mesmo caso se aplica quando fazemos um "git add" em um arquivo e tentamos o checkout, não existe versão anterior, o que faz com que o comando também não funcione.

Se por um acaso, modificarmos um arquivo já comitado e fizermos um git checkout, aí sim estaremos voltando a versão dele para a anterior a modificação e o comando (checkout) funciona.

No caso do git reset, precisamos que o arquivo já esteja mapeado para que o comando funcione, em outras palavras, precisamos adicionar esse arquivo (git add) para então fazer o git reset --hard e desafazermos todas essas modificações, voltando a nossa branch inteira para o estado inicial. Os arquivos são descartados mesmo que não possuam versões anteriores, diferente do checkout.