2016-08-14 197 views
0

我正在研究在Google的私人應用數據文件夾中創建/更新單個文本文件的應用。這是通過REST v3 Drive API完成的。 幾天前它工作得很好,現在它沒有。據我所知,唯一改變的是我將其上傳到Google Play。我的 在我的應用程序連接到應用程序時遇到問題,因爲'service'變量返回null。我的想法是,也許我需要刷新令牌或其他東西,但是我一直無法找到關於如何使用v3 API來做到的任何事情。 我非常感謝這方面的幫助。Google Drive Android API身份驗證問題

這裏是我試過到目前爲止:
1.創建一個新的密鑰庫,並重新下載谷歌與services.json文件與新的SHA1指紋
2.禁用和重新啓用驅動器API
3.我發展我的「釋放」變種,可能是壞的項目,但它之前
4.工作敲我的頭撞在牆上

這裏的源代碼:

 // Gather credentials 
     credential = GoogleAccountCredential.usingOAuth2(getApplicationContext(), Arrays.asList(SCOPES)).setBackOff(new ExponentialBackOff()); 
     SharedPreferences settings = getSharedPreferences("Roblu", Context.MODE_PRIVATE); 
     String accountName = settings.getString("accountName", ""); 
     credential.setSelectedAccountName(accountName); 

     // Start Google services 
     HttpTransport transport = AndroidHttp.newCompatibleTransport(); 

     JsonFactory jsonFactory = JacksonFactory.getDefaultInstance(); 
     // This is returning null 
     service = new Drive.Builder(transport, jsonFactory, credential).setApplicationName("Roblu").build(); 
     client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); 

編輯
此行對'Drive'對象返回null。想法?

service = new com.google.api.services.drive.Drive.Builder(transport, jsonFactory, credential).setApplicationName("Roblu").build(); 
+0

SHA1指紋是否來自您用於簽署已發佈應用程序的相同密鑰庫? –

+0

沒有.....我的應用程序在不同的密鑰存儲下發布,但我使用不同的密鑰存儲在adb上運行應用程序 - 這是一個問題嗎? @ X-碼 – wdavies973

回答

0

當你發佈使用谷歌的服務,如驅動器REST API的應用程序,你需要添加一個證書的應用程序的生產版本,從您使用相同的密鑰庫導出的SHA1指紋簽署APK。

通常在測試期間添加從調試密鑰庫派生的憑證。此憑證將而不是與該應用程序的生產版本一起使用。

所以你去Google Developer Console(https://console.developers.google.com/apis/credentials)並添加一個新的憑證。