2015-06-04 6 views
22

Uruchamiając próbkę quickstart Java na https://developers.google.com/drive/web/quickstart/java?hl=hu w NetBeans, jestem otrzymaniu kodu błędu:UWAGA: nie można zmienić uprawnień dla każdego:

Jun 04, 2015 12:12:11 AM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly 
WARNING: unable to change permissions for everybody: 
C:\Users\Quibbles\credentials\drive-api-quickstart 

Co robię źle?

Edytuj: To jest kompletny komunikat o błędzie.

Jun 04, 2015 5:11:39 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly 
WARNING: unable to change permissions for owner: C:\Users\Quibbles\.credentials\drive-api-quickstart 
Exception in thread "main" java.lang.NullPointerException 
    at java.io.Reader.<init>(Reader.java:78) 
    at java.io.InputStreamReader.<init>(InputStreamReader.java:72) 
    at DriveQuickstart.authorize(DriveQuickstart.java:64) 
    at DriveQuickstart.getDriveService(DriveQuickstart.java:87) 
    at DriveQuickstart.main(DriveQuickstart.java:96) 
Java Result: 1 
+0

Proszę napisać pełne ostrzeżenie. – KRR

+0

Twoja usługa może już być uruchomiona. Zabij starą instancję, niż powinna działać ponownie. – KRR

+1

@KRR Zaktualizowałem post, aby uwzględnić inne otrzymywane komunikaty o błędach. Zdarza się to bez usługi już uruchomionej. – quibblify

Odpowiedz

0

miał ten sam problem podczas uruchamiania przykład podany w poradniku „https://developers.google.com/drive/v2/web/quickstart/java”. Postępowano zgodnie z instrukcją tak, jak podano w samouczku, ale wciąż otrzymywałem ten wyjątek uprawnień. Ostatecznie udało się to rozwiązać, przenosząc plik "client_secret.json" do folderu "\ build \ classes \ main \ classes". Ponadto przed budowaniem projektu z "gradle -q run" po raz pierwszy usuń wszystkie pliki z folderu "C: \ Users \ userName \ .credentials".

26

Miał ten sam problem i stracił wiele godzin, zanim zdał sobie sprawę, że "nie można zmienić uprawnień dla właściciela: C: \ Users \ Quibbles.credentials \ drive-api-quickstart"
to tylko ostrzeżenie.

Prawdziwym problemem jest tutaj wskaźnik zerowy.

InputStream in = 
      DriveQuickstart.class.getResourceAsStream("/client_secret.json"); 

Ta linia była problemem w moim przypadku. "in" było puste, a tym samym wskaźnik zerowy.

InputStream in = new FileInputStream("<Full Path>\\client_secret.json"); 

Rozwiązało to mój problem.

+1

Miał ten sam problem w "google-api-java-client-samples-master". Tutaj powinieneś zrobić 'InputStreamReader in = new InputStreamReader (new FileInputStream (" \\ client_secrets.json "));' Ponieważ 'GoogleClientSecrets.load' nie akceptuje' InputStream'. –

10

Rzeczywista problemem jest błąd w kodzie Google API dla setPermissionsToOwnerOnly

Kod został napisany tylko do pracy w systemach opartych na Linux/Unix, a nie systemu Windows ACL systemów opartych.

Możesz zignorować ostrzeżenie lub napisać własną klasę DataStore, która ustawia uprawnienia poprawnie dla systemu Windows.

Mam zamiar spróbować zgłosić błąd w Google również.

+2

Problem źródłowy dotyczy repozytorium GitHub, którego właścicielem jest Google. Kod nie był aktualizowany od 2013 roku. Https://github.com/google/google-http-java-client/blob/dev/google-http-client/src/main/java/com/google/api/client /util/store/FileDataStoreFactory.java – JustADev

+2

Przesłałem zgłoszenie błędu do Google: https://github.com/google/google-http-java-client/issues/315 – JustADev

+3

Aby wyłączyć komunikat OSTRZEŻENIE spowodowany przez Błąd korzystania z kodu biblioteki Google: \t \t \t finał java.util.logging.Logger buggyLogger = java.util.logging.Logger.getLogger (FileDataStoreFactory.class.getName()); \t \t buggyLogger.setLevel (java.util.logging.Level.SEVERE); – JustADev

3

Miałem do czynienia z tym samym problemem w Eclipse. Oto rozwiązanie:

  1. Run zaćmienie w trybie administratora

  2. Jasne katalogu C:/Users/<username>.credentials/calendar-java-quickstart.json

  3. Skopiuj .json plik katalogu bin, na przykład bin/main/resources/client_secret.json

Możesz teraz biegać.