2016-03-24 3 views
2

Wenn ich versuche, ein aufgenommenes Bild in Google Drive zu speichern, erhalte ich folgende Fehlermeldung:Illegal Argument Exception wenn man versucht, ein Bild in Google Drive zu speichern

java.lang.IllegalArgumentException: the name must not be empty: null 
           at android.accounts.Account.<init>(Account.java:48) 
           at com.google.android.gms.auth.zzd.getToken(Unknown Source) 
           at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source) 
           at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:255) 
           at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:279) 
           at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859) 
           at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410) 
           at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343) 
           at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460) 
           at com.amrutpatil.makeanote.GDActions.search(GDActions.java:290) 
           at com.amrutpatil.makeanote.GDActions.search(GDActions.java:211) 

ich erfolgreich beitreten kann und wählen Sie einen Ordner auf Google Drive, wenn ich versuche, ein Bild zu speichern, bekomme ich das Problem oben.

Ich verwende derzeit Marshmallow auf einem physischen Gerät Nexus 6.

Mein GDActions.java Code:

private static ArrayList<GF> search(ArrayList<GF> gfs, com.google.api.services.drive.Drive.Files.List qry) throws IOException { 
     String npTok = null; 
     if (qry != null) do { 
      FileList gLst = qry.execute(); //get an error here 
      if (gLst != null) { 
       for (File gFl : gLst.getItems()) { 
        if (gFl.getLabels().getTrashed()) continue; 
        gfs.add(new GF(gFl.getTitle(), gFl.getId())); 
       } 
       npTok = gLst.getNextPageToken(); 
       qry.setPageToken(npTok); 
      } 
     } while (npTok != null && npTok.length() > 0); 
     return gfs; 
    } 

Ich erhalte eine Fehlermeldung bei Filelist GLST = qry.execute() oben. Dies geschieht

, wenn die Suchmethode hier aufgerufen wird:

static ArrayList<GF> search(String prId, String titl, String mime) { 
     ArrayList<GF> gfs = new ArrayList<>(); 
     String qryClause = "'me' in owners and "; 
     if (prId != null) qryClause += "'" + prId + "' in parents and "; 
     if (titl != null) qryClause += "title = '" + titl + "' and "; 
     if (mime != null) qryClause += "mimeType = '" + mime + "' and "; 
     qryClause = qryClause.substring(0, qryClause.length() - " and ".length()); 
     com.google.api.services.drive.Drive.Files.List qry = null; 
     try { 
      qry = mGOOSvc.files().list().setQ(qryClause) 
        .setFields("items(id, labels/trashed, title), nextPageToken"); 
      gfs = search(gfs, qry); 
     } catch (GoogleAuthIOException gaiEx) { 
      try { 
       gfs = search(gfs, qry); //Invoked here 
      } catch (Exception g) { 
       GDUT.le(g); 
      } 
     } catch (Exception e) { 
      GDUT.le(e); 
     } 
     return gfs; 
    } 

Antwort

0

java.lang.IllegalArgumentException: the name must not be empty: null.

Der "Name", auf den es sich bezieht, ist der Kontoname. Stellen Sie sicher, dass Sie das GoogleAccountCredential-Objekt festlegen.

mAccountCredential.setSelectedAccountName("[email protected]"); 

Hinweis: Legen Sie den Kontonamen als vollständige E-Mail fest; [email protected], anstatt nur user123.

+0

Ich habe versucht, den Kontonamen wie vorgeschlagen einzustellen. Ich bekomme jedoch immer den gleichen Fehler, der oben erwähnt wurde. – ap6491

0

Stellt sich heraus, dass es ein Berechtigungsproblem gab. Obwohl ich die Berechtigung GET_ACCOUNTS in meiner Datei "AndroidManifest.xml" festgelegt hatte, musste ich die Berechtigungen für Kontakte in meinen App-Einstellungen manuell aktivieren.

Es kann sich um ein gerätespezifisches Problem handeln, da ich meine App auf einem physischen Nexus 6-Gerät mit Android Marshmallow 6.0.1 ausgeführt habe.

Sie können Ihre App-Einstellungen nur überprüfen, um sicher zu gehen.

Verwandte Themen