2017-08-06 2 views
-1

J'utilise le téléchargement partitionné pour le téléchargement d'images dans le formulaire de soumission de requête. Dans mon cas, le téléchargement d'image est facultatif, donc quand je n'utilise pas l'image jette un pointeur nul besoin donc je devrait être facultatifjava.lang.NullPointerException: uri at com.android.internal.util.Preconditions.checkNotNull

public String getPath(Uri uri) { 
     Cursor cursor = AskQueryActivity.this.getContentResolver().query(uri, null, null, null, null); // this line throws error 
     assert cursor != null; 
     cursor.moveToFirst(); 
     String document_id = cursor.getString(0); 
     document_id = document_id.substring(document_id.lastIndexOf(":") + 1); 
     cursor.close(); 

     cursor = AskQueryActivity.this.getContentResolver().query(
       android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
       null, MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null); 
     assert cursor != null; 
     cursor.moveToFirst(); 
     String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA)); 
     cursor.close(); 

     return path; 
    } 

erreur logcat

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.admin.lorem.ipsum, PID: 3818 
        java.lang.NullPointerException: uri 
         at com.android.internal.util.Preconditions.checkNotNull(Preconditions.java:60) 
         at android.content.ContentResolver.query(ContentResolver.java:474) 
         at android.content.ContentResolver.query(ContentResolver.java:434) 
+0

il est assez évident que votre uri est nul, déboguez votre application et voyez pourquoi. –

+0

@ S.Aslpour oui C'est nul comme je l'ai dit nul quand je n'utilise pas l'image upload – Omi

+0

alors ajoutez un if et vérifiez quand c'est nul, définissez votre curseur null: | –

Répondre

0

ne vérifient nulle sur uri et retour nul de getPath si uri est nulle. Evitez que votre méthode getPath fasse quoi que ce soit si uri est nul.

L'appelant de getPath doit réagir à cette valeur nulle et faire tout ce que vous devez faire si le résultat est nul. Ou mieux, évitez l'appelant pour exécuter getPath si uri est nul.