Erreur introuvable [Résolu]

Signaler
Messages postés
17
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
25 mars 2020
-
BunoCS
Messages postés
14833
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 mars 2020
-
Bonjour,
j,ai un java.lang.Runtime et un java.NullPointerExeption je précise que je vois à quoi ça correspond
mais je ne trouve pas l'erreur dans le code je vous le donne ainsi que la console debug pourriez vous m'aider merci.

package com.example.mycontact;

import android.content.Context;
import android.os.Build;
import android.os.Environment;
import android.support.annotation.RequiresApi;
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.Toast;
import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE;

import java.io.File;


public class Register_Activity extends AppCompatActivity {
    private String nom_enter;
    private int compteur_verif=0;
    private EditText editText;



    private String prenom_enter;
    private String num_enter;
    private String adress_enter;
    private EditText nom ;
    private EditText prenom ;
    private EditText num ;
    private EditText adress;
    private Button valider;
    private static final String FILENAME = "mescontacts.txt";
    private static final String FOLDERNAME = "mescontacts";
    private static final int RC_STORAGE_WRITE_PERMS = 100;


    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newcontact);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            this.readFromStorage();
        }


        nom=(EditText)findViewById(R.id.nom_enter);
        prenom=(EditText)findViewById(R.id.prenom_enter);
        num=(EditText)findViewById(R.id.num_enter);
        adress=(EditText)findViewById(R.id.adress_enter);
        valider=(Button)findViewById(R.id.button);
        num.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) {
                valider.setEnabled(true);
            }

            @Override
            public void afterTextChanged(Editable s) {
                nom_enter=num.getText().toString();
            }
        });
        nom.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) {
                valider.setEnabled(true);
            }

            @Override
            public void afterTextChanged(Editable s) {
                prenom_enter=prenom.getText().toString();
            }
        });

        valider.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                adress_enter=adress.getText().toString();
                if (num.length() != 10){
                    valider.setEnabled(false);
                    Toast.makeText(getApplicationContext(),"le numéro n'est pas valide",Toast.LENGTH_LONG).show();

                }
                if(nom.length() <= 0){
                    valider.setEnabled(false);
                    Toast.makeText(getApplicationContext(),"vous avez oublier le nom",Toast.LENGTH_LONG).show();
                }
                else{
                    ++compteur_verif;
                }}
        });

    }
     @RequiresApi(api = Build.VERSION_CODES.KITKAT)
     private void save(){
        if(compteur_verif==1){
            this.writeOnExternalStorage();
        }
     }
     @RequiresApi(api = Build.VERSION_CODES.KITKAT)

     private void readFromStorage(){
        if(StorageUtils.isExternalStorageReadable()){
            this.num.setText
                    (StorageUtils.getTextFromStorage(getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS),this,FILENAME,FOLDERNAME));

        }
     }
     @RequiresApi(api = Build.VERSION_CODES.KITKAT)
     private void writeOnExternalStorage(){
        if (StorageUtils.isExternalStorageWritable()){
            StorageUtils.setTextInStorage
                    (Environment.getExternalStoragePublicDirectory
                            (Environment.DIRECTORY_DOCUMENTS),this,FILENAME,FOLDERNAME,this.num.getText().toString());
        }else{
            Toast.makeText(this,getString(R.string.external_storage_impossible_create_file),Toast.LENGTH_LONG).show();
        }
     }
}


et la console debug:


E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.mycontact, PID: 20324
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mycontact/com.example.mycontact.Register_Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference

1 réponse

Messages postés
14833
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 mars 2020
1 719
Trouvé ! ;)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    this.readFromStorage();
} 


Tu le fais trop tôt. Tu devrais le faire après avoir récupérer tes composants graphiques puisque, dans la méthode, tu set le texte d'un EditText
lukas6410
Messages postés
17
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
25 mars 2020
3
je vais essayer je te donne des nouvelle ,merci
lukas6410
Messages postés
17
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
25 mars 2020
3
merci cette erreur est resolue mais je n'arrive pas à écrire le fichier sur mon android avec la méthode save(),qui s'execut car j,ai changé mon code et fais en sorte de mettre un toast pour verifier
BunoCS
Messages postés
14833
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
25 mars 2020
1 719 > lukas6410
Messages postés
17
Date d'inscription
mardi 24 mars 2020
Statut
Membre
Dernière intervention
25 mars 2020

C'est un autre problème, donc autre sujet pour ne pas polluer le forum ;)
Et si celui-ci est résolu, merci de l'indiquer