2017-12-29 3 views
-1

Wenn ich versuche, ein Bild hochzuladen gibt es mir Fehler Mission unten. Vor dem Kompilieren SDK 26 funktioniert es gutAndroid.database.CursorIndexOutOfBoundsException: Index 0 angefordert

Ich benutze diese Bibliothek zum Hochladen eines Bildes: kompilieren 'net.gotev: uploadservice: 2.1' was soll ich tun ???

getPath() -Methode:

//method to get the file path from uri 
public String getPath(Uri uri) { 
    Cursor cursor = getContentResolver().query(uri, null, null, null, null); 
    cursor.moveToFirst(); 
    String document_id = cursor.getString(0); 
    document_id = document_id.substring(document_id.lastIndexOf(":") + 1); 
    cursor.close(); 

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

    return path; 
} 

uploadMultiPart() -Methode:

public void uploadMultipart() { 

      String path = getPath(filePath); 

      //Uploading code 
      try { 
       String uploadId = UUID.randomUUID().toString(); 
       //Creating a multi part request 
       new MultipartUploadRequest(this, uploadId, AppConfig.RECEIPT_URL) 
         .addFileToUpload(path, "image") //Adding file 
         .addParameter("emp_id", emp_id) //Adding text parameter to the request 

         .setNotificationConfig(new UploadNotificationConfig()) 
         .setMaxRetries(7) 
         .startUpload(); //Starting the upload 
       Toast.makeText(getApplicationContext(), 
         "Upload Successfull", Toast.LENGTH_LONG) 
         .show(); 

      } catch (Exception exc) { 
       Toast.makeText(this, exc.getMessage(), Toast.LENGTH_SHORT).show(); 
      } 

} 

Hier ist meine Fehlercode:

FATAL EXCEPTION: main 
Process: com.indore.ddagro, PID: 6609 
android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 
    at android.database.AbstractCursor.checkPosition(AbstractCursor.java:460) 
    at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136) 
    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50) 
    at android.database.CursorWrapper.getString(CursorWrapper.java:137) 
    at com.indore.ddagro.activity.RecepitActivity.getPath(RecepitActivity.java:230) 
    at com.indore.ddagro.activity.RecepitActivity.uploadMultipart(RecepitActivity.java:153) 
    at com.indore.ddagro.activity.RecepitActivity.onClick(RecepitActivity.java:276) 
    at android.view.View.performClick(View.java:6256) 
    at android.view.View$PerformClick.run(View.java:24697) 
    at android.os.Handler.handleCallback(Handler.java:789) 
    at android.os.Handler.dispatchMessage(Handler.java:98) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6541) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 
Force finishing activity com.indore.ddagro/.activity.RecepitActivity 
Showing crash dialog for package com.indore.ddagro u0 
+1

Ich denke, Ihr Cursor leer ist, sucht warum ist es leer –

+0

'android.database.CursorIndexOutOfBoundsException: Index 0 angefordert , mit einer Größe von 0 'gab der Cursor keine Zeilen zurück (** Größe von 0 **). –

Antwort

0

Der Grund für den Fehler ist, dass Ihre Suche in der Datenbank gibt 0 Zeilen in der Abfragemethode zurück.

Erster Fall: Es hat wahrscheinlich nichts in der Tabelle, da Sie null in allen Parametern der Abfrage-Methode übergeben.

Zweiter Fall: Die andere Abfrage findet auch nichts in der speziellen Tabelle mit den in der Abfrage-Methode übergebenen Parameter. Oder der Tisch ist auch leer.

Dritter Fall: Es kann etwas in Ihrem Inhaltsanbieter sein, aber ich bin nicht wirklich sicher darüber.

0

können Sie filepath null getPath() so überprüfen Sie es mit if condition wie sind vorbei unter

String path = ""; 

    if (!Uri.EMPTY.equals(filePath)) { 

     path = getPath(filePath); 
    }else{ 
     Toast.makeText(this, "Image not selected!", Toast.LENGTH_SHORT).show(); 
    } 
+0

Ich versuche das aber nicht funktioniert – Piyu

+0

ist der gleiche Fehler in Logcat mit diesem Code ....? – Omi

+0

ja der gleiche Fehler wird angezeigt – Piyu

Verwandte Themen