2016-12-14 44 views
0

當我採用了android客戶經理進行預帳戶slelection然後當我選擇一個特定的帳戶,然後Android應用程序不幸停止,因爲AuthenticatorException安卓了java.lang.RuntimeException:android.accounts.AuthenticatorException:UNREGISTERED_ON_API_CONSOLE

的錯誤:

12-14 15:08:19.410: E/AndroidRuntime(11571): java.lang.RuntimeException: android.accounts.AuthenticatorException: UNREGISTERED_ON_API_CONSOLE 
12-14 15:08:19.410: E/AndroidRuntime(11571): at com.ibdtd.cloudprinter.MainActivity$OnTokenAcquired.run(MainActivity.java:525) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.accounts.AccountManager$11.run(AccountManager.java:1438) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.os.Handler.handleCallback(Handler.java:733) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.os.Handler.dispatchMessage(Handler.java:95) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.os.Looper.loop(Looper.java:146) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.app.ActivityThread.main(ActivityThread.java:5602) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at java.lang.reflect.Method.invokeNative(Native Method) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at java.lang.reflect.Method.invoke(Method.java:515) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at dalvik.system.NativeStart.main(Native Method) 
12-14 15:08:19.410: E/AndroidRuntime(11571): Caused by: android.accounts.AuthenticatorException: UNREGISTERED_ON_API_CONSOLE 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.accounts.AccountManager.convertErrorToException(AccountManager.java:1737) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.accounts.AccountManager.access$400(AccountManager.java:145) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.accounts.AccountManager$AmsTask$Response.onError(AccountManager.java:1583) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at android.os.Binder.execTransact(Binder.java:404) 
12-14 15:08:19.410: E/AndroidRuntime(11571): at dalvik.system.NativeStart.run(Native Method) 

錯誤的:

private class OnTokenAcquired implements AccountManagerCallback<Bundle> { 

    @Override 
    public void run(AccountManagerFuture<Bundle> result) { 
     try { 

      Bundle bundle = result.getResult(); 
      Intent launch = (Intent) bundle.get(AccountManager.KEY_INTENT); 

      if (launch != null) { 
       startActivityForResult(launch, AUTHORIZATION_CODE); 
      } else { 
       String token = bundle 
         .getString(AccountManager.KEY_AUTHTOKEN); 

       authPreferences.setToken(token); 
       Log.e("AuthApp", authPreferences.getToken()); 

      } 
     } 
     catch (Exception e) 
     { 
      throw new RuntimeException(e); 
     } 
    } 
} 

回答

0

您必須通過d註冊您的簽署應用ev控制檯。這是基於應用程序包名稱和sha1指紋的安全措施。

要做到這一點,你必須:

  • 簽署APK,手動或通過搖籃或什麼:在Android文檔是在這個步驟很清楚。
  • 得到你的sha1指紋;如this SO answer中所述,在Android Studio上它很簡單:在Gradle面板中,選擇您的根項目下的signingReport任務並運行它 - SHA1指紋將顯示在文本輸出中。
  • 通過Google開發人員控制檯註冊您的APK:創建一個新的憑證/ OAuth客戶端ID/Android,由您獲得的SHA1指紋和您的APK軟件包名稱定義。

https://developers.google.com/drive/android/auth

+0

不工作.... –