je suis sur le point de finir une petite appli, sauf que je rencontre un problème un peu bizarre,
Car L'appli se lance à la perfection sur un ancien sumsung et s'arrete des le debut sur le Smsung S10+ qui a l'api 28
J'ai essayé de lancé une appli vide et il n'y a aucun problème sur son fonctionnement.
je vous mets le code et le fichier Xml associé
et je vous remercie pour votre temps et aide (:
2019-06-16 16:58:50.537 25232-25232/? E/Zygote: isWhitelistProcess - Process is Whitelisted
2019-06-16 16:58:50.537 25232-25232/? E/Zygote: accessInfo : 1
2019-06-16 16:58:50.870 25232-25232/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ouss.oussquizza, PID: 25232
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ouss.oussquizza/com.ouss.oussquizza.controller.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:3107)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3250)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1947)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7032)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
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 com.ouss.oussquizza.controller.MainActivity.onCreate(MainActivity.java:62)
at android.app.Activity.performCreate(Activity.java:7327)
at android.app.Activity.performCreate(Activity.java:7318)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3087)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3250)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1947)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7032)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
package com.ouss.oussquizza.controller;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.ouss.oussquizza.R;
import com.ouss.oussquizza.model.User;
import static java.lang.Boolean.FALSE;
public class MainActivity extends AppCompatActivity {
private TextView PremierText ;
private EditText PremierChamp;
private Button Play;
private User mUser;
public static final int jeu_requestCode = 1;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(jeu_requestCode == requestCode && RESULT_OK == resultCode){
int score = data.getIntExtra(Main2Activity.id_score,0);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mUser = new User();
PremierText = (TextView) findViewById(R.id.premier_text);
PremierChamp = (EditText) findViewById(R.id.premier_champ);
Play = (Button) findViewById(R.id.button_play);
PremierChamp.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Play.setEnabled(s.toString().length() != 0);
}
@Override
public void afterTextChanged(Editable s) {
}
});
Play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String prenom = PremierText.getText().toString();
mUser.setPrenom(prenom);
Intent Act2 = new Intent(MainActivity.this,Main2Activity.class);
startActivity(Act2);
startActivityForResult(Act2,jeu_requestCode);
}
});
}
}
Code java
package com.ouss.oussquizza.controller;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import com.ouss.oussquizza.R;
import com.ouss.oussquizza.model.User;
import static java.lang.Boolean.FALSE;
public class MainActivity extends AppCompatActivity {
private TextView PremierText ;
private EditText PremierChamp;
private Button Play;
private User mUser;
public static final int jeu_requestCode = 1;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(jeu_requestCode == requestCode && RESULT_OK == resultCode){
int score = data.getIntExtra(Main2Activity.id_score,0);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mUser = new User();
PremierText = (TextView) findViewById(R.id.premier_text);
PremierChamp = (EditText) findViewById(R.id.premier_champ);
Play = (Button) findViewById(R.id.button_play);
PremierChamp.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Play.setEnabled(s.toString().length() != 0);
}
@Override
public void afterTextChanged(Editable s) {
}
});
Play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String prenom = PremierText.getText().toString();
mUser.setPrenom(prenom);
Intent Act2 = new Intent(MainActivity.this,Main2Activity.class);
startActivity(Act2);
startActivityForResult(Act2,jeu_requestCode);
}
});
}
}
La partie intéressante de la stackstrace est celle ci
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ouss.oussquizza/com.ouss.oussquizza.controller.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
Dans ta mainActivity tu tentes d'appeler la méthode setOnClickListener sur un bouton dont la référence est null. LE fichier XML que tu donnes est bien le fichier activity_main.xml ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site - Mon livre sur le XML - Mon blog