>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Erro ao Executar Aplicação com Instrução da Chamada Botão Cliente - Curso de SQLite com Android Online


Bom dia a todos. Pessoal, iniciando a execução da aplicação eu tenho a seguinte instrução na MainActivity

Button btnCliente =findViewById(R.id.btnCliente);


btnCliente.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Chamando tela de Cadastro
//startActivity(new Intent(getBaseContext(),CadastroActivity.class)); dando erro com esta instrução
Intent intentChamarTelaCadCliente = new Intent(getBaseContext(),CadastroActivity.class);
startActivity(intentChamarTelaCadCliente);


}
});


Com esta instrução a aplicação da o erro abaixo e não executa, enquanto sem ela pelo menos faz a instalação.

Um outro ponto em destaque é que eu tenho um botão inclusão no Xml porém ele não aparece.

Conseguem me dar um help neste projeto inicial, pois ontem fiquei tomando até 01:00 e não consegui dar continuidade.

Um outro pronto é que o meu botão Cliente não aparece apesar de no Layout visual do Android Studio estar aparecendo.

De qualquer forma coloquei o projeto em nuvem para verem o que estou fazendo de errado.Acho que fica mais fácil de vocês visualizarem o problema.

https://1drv.ms/f/s!Av_A5dhVZ954ikMhEOqC2u01gQmX


Erro que acontece com a instrução acima :

03-20 07:52:33.781 6761-6761/sada.com.br.crudexemplo E/AndroidRuntime: FATAL EXCEPTION: main

                                                                       Process: sada.com.br.crudexemplo, PID: 6761

                                                                       java.lang.RuntimeException: Unable to start activity ComponentInfo{sada.com.br.crudexemplo/sada.com.br.crudexemplo.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3160)

                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275)

                                                                           at android.app.ActivityThread.access$1000(ActivityThread.java:218)

                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744)

                                                                           at android.os.Handler.dispatchMessage(Handler.java:102)

                                                                           at android.os.Looper.loop(Looper.java:145)

                                                                           at android.app.ActivityThread.main(ActivityThread.java:7007)

                                                                           at java.lang.reflect.Method.invoke(Native Method)

                                                                           at java.lang.reflect.Method.invoke(Method.java:372)

                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)

                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

                                                                        Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

                                                                           at sada.com.br.crudexemplo.MainActivity.onCreate(MainActivity.java:32)

                                                                           at android.app.Activity.performCreate(Activity.java:6609)

                                                                           at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134)

                                                                           at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3113)

                                                                           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3275) 

                                                                           at android.app.ActivityThread.access$1000(ActivityThread.java:218) 

                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1744) 

                                                                           at android.os.Handler.dispatchMessage(Handler.java:102) 

                                                                           at android.os.Looper.loop(Looper.java:145) 

                                                                           at android.app.ActivityThread.main(ActivityThread.java:7007) 

                                                                           at java.lang.reflect.Method.invoke(Native Method) 

                                                                           at java.lang.reflect.Method.invoke(Method.java:372) 

                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 

                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 

03-20 07:52:33.801 6761-6761/sada.com.br.crudexemplo I/Process: Sending signal. PID: 6761 SIG: 9






1 Resposta


Consegui resolver com a seguinte instrução : setContentView(R.layout.activity_main);

Ou seja, quando eu criei a a mainActivity não tinha esta instrução conforme abaixo :


public class MainActivity extends AppCompatActivity {
// private SQLiteDatabase db = null;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Apesar deste problema estar resolvido, alguém consegue explicar isso ?