IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Runtime exception: Failure delivering result


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut Runtime exception: Failure delivering result
    Bonjour à tous !

    Voici l'erreur que j'ai quand je veux envoyer je termine mon intent:

    08-30 15:21:05.308: ERROR/AndroidRuntime(3032): Uncaught handler: thread main exiting due to uncaught exception
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=12, result=-1, data=Intent { cmp=com.trebbe.scanner/.ActivitySaisieQte (has extras) }} to activity {com.trebbe.scanner/com.trebbe.scanner.ActivityAjoutProduits}: java.lang.NullPointerException
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at android.app.ActivityThread.deliverResults(ActivityThread.java:3504)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3546)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at android.app.ActivityThread.access$2700(ActivityThread.java:126)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1962)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at android.os.Handler.dispatchMessage(Handler.java:99)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at android.os.Looper.loop(Looper.java:123)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at android.app.ActivityThread.main(ActivityThread.java:4595)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at java.lang.reflect.Method.invokeNative(Native Method)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at java.lang.reflect.Method.invoke(Method.java:521)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at dalvik.system.NativeStart.main(Native Method)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): Caused by: java.lang.NullPointerException
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at com.trebbe.scanner.ProduitDevis.<init>(ProduitDevis.java:31)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at com.trebbe.scanner.ActivityAjoutProduits.onActivityResult(ActivityAjoutProduits.java:127)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at android.app.Activity.dispatchActivityResult(Activity.java:3868)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): at android.app.ActivityThread.deliverResults(ActivityThread.java:3500)
    08-30 15:21:05.328: ERROR/AndroidRuntime(3032): ... 11 more
    Et voici le code de mon activity:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    package com.trebbe.scanner; 
     
    import java.io.IOException; 
     
    import org.json.JSONException; 
     
    import android.app.Activity; 
    import android.os.Bundle; 
    import android.util.Log; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.ImageView; 
    import android.widget.TextView; 
    import android.widget.Toast; 
     
    public class ActivitySaisieQte extends Activity { 
     
        private String idProd; 
        private Produit produit; 
        private EditText ed_qte; 
     
        public static final int ACTION_SCAN = 10; 
     
        @Override 
        protected void onCreate(Bundle savedInstanceState) {     
            super.onCreate(savedInstanceState); 
     
            setContentView(R.layout.saisie_qte_produit);                     
     
            //On récupére l'objet Bundle envoyé par l'autre Activity 
            Bundle objetbunble  = this.getIntent().getExtras();          
     
            //On récupére les données du Bundle 
            if (objetbunble != null && objetbunble.containsKey("idProd")) {                         
     
                idProd = this.getIntent().getStringExtra("idProd"); 
                try { 
                    produit = new Produit(idProd);                 
                    TextView tv = (TextView)findViewById(R.id.tv_description);                 
                    Button bt_oui = (Button)findViewById(R.id.BtOui); 
                    Button bt_non = (Button)findViewById(R.id.BtNon); 
                    ImageView iv_prod = (ImageView)findViewById(R.id.img_prod); 
     
                    bt_oui.setOnClickListener(bt_ouiClick); 
                    bt_non.setOnClickListener(bt_nonClick); 
     
                    tv.setText(produit.toString()); 
                    iv_prod.setImageBitmap(produit.getImage()); 
     
                    ed_qte = (EditText)findViewById(R.id.ed_qte); 
     
                } catch (JSONException e) { 
                    e.printStackTrace(); 
                } catch (IOException e) { 
                    e.printStackTrace(); 
                } 
            } 
            else { 
                //Erreur             
                Log.e("barcode erreur","impossible, bundle obsolète !"); 
                setResult(RESULT_CANCELED); 
                finish(); 
            } 
     
        } 
     
        private Button.OnClickListener bt_ouiClick = new Button.OnClickListener(){ 
     
            public void onClick(View v) { 
                if(validation()){                         
                    getIntent().putExtra("qte_produit", Integer.parseInt(ed_qte.getText().toString())); 
                    getIntent().putExtra("idProduit",Long.parseLong(idProd));                                 
     
                    setResult(RESULT_OK,getIntent()); 
     
                } 
                else{ 
                    Toast t = Toast.makeText(getApplicationContext(), "Vous devez saisir une quantité", Toast.LENGTH_SHORT); 
                    t.show(); 
                    setResult(RESULT_CANCELED); 
     
                } 
                finish(); 
            } 
     
        }; 
     
        private boolean validation(){ 
            return !ed_qte.getText().equals(""); 
        } 
     
        private Button.OnClickListener bt_nonClick = new Button.OnClickListener(){ 
     
            public void onClick(View v) {             
                setResult(ACTION_SCAN); 
                finish(); 
            } 
     
        }; 
    }
    Le soucis intervient lorsque le listener bt_ouiClick est executé.

    Voyez-vous d'où le soucis vient ?

    Merci beaucoup par avance !

  2. #2
    Membre confirmé Avatar de titou624
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 152
    Par défaut
    Il semblerait que le problème survienne uniquement pour la modification.

    Voici le code qui appelle l'intent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
     
    package com.trebbe.scanner; 
     
    import java.io.IOException; 
    import java.text.ParseException; 
    import java.util.ArrayList; 
    import com.android.dataframework.Entity; 
    import org.json.JSONException; 
     
    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.util.Log; 
    import android.view.ContextMenu; 
    import android.view.MenuInflater; 
    import android.view.MenuItem; 
    import android.view.View; 
    import android.view.ContextMenu.ContextMenuInfo; 
    import android.widget.AdapterView; 
    import android.widget.AdapterView.OnItemClickListener; 
    import android.widget.Button; 
    import android.widget.ListView; 
    import android.widget.TextView; 
    import android.widget.Toast; 
     
    import com.trebbe.scanner.provider.SqliteProvider; 
    import com.trebbe.scanner.renderer.ProduitsListAdapter; 
     
    public class ActivityAjoutProduits extends Activity { 
     
        private static final int CODE_SCANNER = 10; 
        private static final int CODE_DESCRIPTION_PRODUIT = 11; 
        private static final int CODE_SAISIE_QTE_PRODUIT = 12; 
     
        private TextView tv_client; 
        private ListView lv_produits;     
        private ProduitsListAdapter pla; 
        private Devis devis; 
        private SqliteProvider sp; 
        private long produitIdToUse; 
        private long idDevis = 0; 
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.ajout_produit); 
     
            sp = new SqliteProvider(getApplicationContext()); 
            //On récupére l'objet Bundle envoyé par l'autre Activity 
            Bundle objetbunble  = this.getIntent().getExtras();          
     
            //On récupére les données du Bundle 
     
            if (objetbunble != null && objetbunble.containsKey("idDevis")) {  
                idDevis = objetbunble.getLong("idDevis"); 
            } 
            else 
                finish(); 
     
            try { 
                devis = sp.getDevis(idDevis); 
            } catch (NumberFormatException e) {             
                e.printStackTrace(); 
            } catch (ParseException e) { 
                e.printStackTrace(); 
            } 
     
            tv_client = (TextView)findViewById(R.id.tv_client); 
            tv_client.setText(devis.getClient().getNom()+" "+devis.getClient().getPrenom()); 
     
            lv_produits = (ListView)findViewById(R.id.lv_produits); 
     
            registerForContextMenu(lv_produits); 
     
            lv_produits.setOnItemClickListener(new OnItemClickListener() { 
     
                public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id) {                                 
                    lancerDescriptionProduit(((ProduitDevis)lv_produits.getAdapter().getItem(position)).getCodeBarre()); 
                }             
     
            });         
     
            findViewById(R.id.bt_scan).setOnClickListener(bt_scanClick); 
     
     
            if(lv_produits.getAdapter()!=null && lv_produits.getAdapter().getCount()==0) 
                return; 
            ArrayList<ProduitDevis> produits = sp.getListeProduits(devis.getId());         
            try { 
                pla = new ProduitsListAdapter(getApplicationContext(), produits); 
                lv_produits.setAdapter(pla); 
            } catch (JSONException e) { 
                e.printStackTrace(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
     
        } 
     
        private Button.OnClickListener bt_scanClick = new Button.OnClickListener(){ 
     
            public void onClick(View v) { 
                lancerScan(); 
            } 
     
        }; 
     
     
        public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
            if (requestCode == CODE_SCANNER) { 
     
                if (resultCode == RESULT_OK) { 
                    String idProduit = intent.getStringExtra("SCAN_RESULT"); 
                    if(idProduit!="") 
                        lancerSaisieQte(idProduit); 
                }  
                else  
                    if (resultCode == RESULT_CANCELED) { 
     
                    } 
            } 
     
            if (requestCode == CODE_SAISIE_QTE_PRODUIT) { 
                if(resultCode == RESULT_OK){ 
                    Log.e("barcode id devis",idDevis+""); 
     
                    // Si le produit correspond, on l'ajoute a la base         
     
                    if(idDevis>0 && intent.hasExtra("idProduit") && intent.hasExtra("qte_produit")){ 
                        ProduitDevis p = new ProduitDevis(sp.addProduct(idDevis, intent.getLongExtra("idProduit", 0), intent.getIntExtra("qte_produit", 0))); 
     
                        // ajout du produit é l'adapter 
     
                        try { 
                            pla.addProduct(p); 
                        } catch (JSONException e) {                     
                            e.printStackTrace(); 
                        } catch (IOException e) { 
                            e.printStackTrace(); 
                        } 
                    } 
                    else{ 
                        Toast t = Toast.makeText(getApplicationContext(), "Impossible d'ajouter ou modifier les produit", Toast.LENGTH_LONG); 
                        t.show(); 
                    } 
                } 
            } 
        } 
     
        private void lancerScan(){ 
            Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
            startActivityForResult(intent, CODE_SCANNER); 
        } 
     
        private void lancerSaisieQte(String idProduit){ 
            Bundle objetbunble = new Bundle(); 
            objetbunble.putString("idProd", idProduit); 
            Intent intentDesc = new Intent(getApplicationContext(), ActivitySaisieQte.class); 
     
            //On affecte é l'Intent le Bundle que l'on a créé 
            intentDesc.putExtras(objetbunble); 
     
            //On démarre l'autre Activity 
            startActivityForResult(intentDesc, CODE_SAISIE_QTE_PRODUIT); 
        } 
     
        private void lancerDescriptionProduit(String idProduit) { 
            Bundle objetbunble = new Bundle(); 
            objetbunble.putString("idProd", idProduit); 
            Intent intentDesc = new Intent(getApplicationContext(), ActivityDescriptionProduit.class); 
     
            //On affecte à l'Intent le Bundle que l'on a créé 
            intentDesc.putExtras(objetbunble); 
     
            //On démarre l'autre Activity 
            startActivityForResult(intentDesc, CODE_DESCRIPTION_PRODUIT); 
     
        } 
     
        @Override 
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
            MenuInflater inflater = getMenuInflater(); 
            inflater.inflate(R.menu.menu_item_list, menu); 
            produitIdToUse = ((AdapterView.AdapterContextMenuInfo) menuInfo).id; 
            Log.e("barcode menu context",produitIdToUse+""); 
        } 
     
        @Override 
        public boolean onContextItemSelected(MenuItem item) { 
            switch (item.getItemId()) { 
     
            case R.id.menuAdd: 
                lancerScan(); 
                break; 
     
            case R.id.menuDelete: 
                sp.removeProduct(this.devis.getId(), this.produitIdToUse); 
                pla.removeProduct(this.produitIdToUse); 
                break; 
     
            case R.id.menuModify: 
                Entity eProduit = sp.getEntityProduit(this.produitIdToUse); 
                lancerSaisieQte(eProduit.getString("codeBarre")); 
                break;             
     
            } 
            return true;         
        }     
    }

Discussions similaires

  1. Grails Runtime Exception
    Par satoure dans le forum Général Java
    Réponses: 0
    Dernier message: 30/11/2012, 18h22
  2. RunTime exception sur un objet potentiellement créé
    Par xetqL dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 03/06/2011, 14h19
  3. [runtime exception] Floating point exception
    Par xion.luhnis dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 17/09/2010, 04h57
  4. Réponses: 2
    Dernier message: 27/09/2005, 16h32
  5. [Exception] Comment catcher une runtime exception ?
    Par bulbo dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 16/06/2005, 09h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo