2016-12-22 7 views
0

私はStackOverflowに投稿した他の質問にあるこの現在のプロジェクトで多量の問題に遭遇しています(そのうちの1つは未解決です)私は別のエラーが発生しましたが、実際にアプリをテストすることはできますが、実際にはリリースすることはできません。このコードで :私は本当にそのシートの編集を行っていた期待していた enter image description hereGoogleAuthException:GoogleスプレッドシートAPI V4に追加しようとしたときにUNREGISTERED_ON_API_CONSOLEが表示される

com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAuthIOException 
                   at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:301) 
                   at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:868) 
                   at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) 
                   at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) 
                   at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469) 
                   at com.pybuspr.listeau.AsyncSheetUpdater.doInBackground(AsyncSheetUpdater.java:58) 
                   at com.pybuspr.listeau.AsyncSheetUpdater.doInBackground(AsyncSheetUpdater.java:20) 
                   at android.os.AsyncTask$2.call(AsyncTask.java:304) 
                   at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
                   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
                   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
                   at java.lang.Thread.run(Thread.java:761) 
                  Caused by: com.google.android.gms.auth.GoogleAuthException: UNREGISTERED_ON_API_CONSOLE 
                   at com.google.android.gms.auth.zze$1.zzbt(Unknown Source) 
                   at com.google.android.gms.auth.zze$1.zzbu(Unknown Source) 
                   at com.google.android.gms.auth.zze.zza(Unknown Source) 
                   at com.google.android.gms.auth.zze.zzc(Unknown Source) 
                   at com.google.android.gms.auth.zze.getToken(Unknown Source) 
                   at com.google.android.gms.auth.zze.getToken(Unknown Source) 
                   at com.google.android.gms.auth.zze.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:269) 
                   at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:294) 

これは私のGoogle APIの資格情報がどのように見えるかです:それは、このエラーを返して

public class AsyncSheetUpdater extends AsyncTask<String, Void, String> { 

    Master activity; 

    @Override 
    protected String doInBackground(String... urls) { 
     GoogleAccountCredential credential; 

     Sheets mService; 

     credential = GoogleAccountCredential.usingOAuth2(activity.getApplicationContext(), Collections.singletonList(SheetsScopes.SPREADSHEETS)) 
       .setBackOff(new ExponentialBackOff()) 
       .setSelectedAccountName("[email protected]"); 

     HttpTransport transport = AndroidHttp.newCompatibleTransport(); 
     JsonFactory jsonFactory = JacksonFactory.getDefaultInstance(); 

     mService = new Sheets.Builder(transport, jsonFactory, credential) 
       .setApplicationName(activity.getString(R.string.app_name)) 
       .setSheetsRequestInitializer(new SheetsRequestInitializer("AIzaSyBreJks4awhrSbyqGkZhgR4rAA61vg0t-g")) 
       .build(); 

     ValueRange values = new ValueRange(); 
     values.set("EMAIL", "[INSERT EMAIL]"); 
     values.set("AUTH", "[INSERT DATE]"); 
     values.set("SUB", "[INSERT DATE + MONTH]"); 

     try { 
      mService.spreadsheets().values().append("1meAAvjdPmghn6wl_IKc-_NJx_M85I_yqsn4Nwm_j_X0", "Users", values) 
        .setValueInputOption("RAW") 
        .execute(); 
     } catch (IOException e) { 
      Log.e("DEBUG", "SheetUpdate Exception: ", e); 
     } 

     return null; 
    } 
} 

APIを使わずにSheetのまっすぐなJSONフィードをどのように使うことができるかなど、単純なことですが、間違いのようです。

答えて

2

今日は同じ問題を抱えていた、と私はそれをこのように解決:あなたはデバッグ

まず、あなたがあなたのをコンパイルしてサインインするとAndroidのメーカーは、デフォルトとして、普段使いのものと異なるキーストアを使用リリースのためにAPK。 異なるキーストアと2つの異なるキー2つの異なるSHA1フィンガープリントを持つことを意味します。

デバッグに使用されているキーストアは、デフォルトで次のパス"〜/ .android/debug.keystore"にありますが、リリース版で使用するキーストアは任意の場所で使用できます手動で作成する必要があります。

あなたのデバッグバージョンのためのAndroid Studioで作成したキーストアはandroiddebugkeyという名前のキーが含まれており、それはデフォルトのパスワードのキーストアのパスワードと同じ、アンドロイドです。

は今、ここにあなたがしなければならないものです:

1)コマンドライン

2を開きます)keytoolコマンドを使用して、タイプkeytool -exportcert -keystore <path-to-debug-or-production-keystore> -list -v

3))アンドロイド(パスワードを入力します表示されているものからSHA1キーを取得し、APIインターフェイスに追加します。

https://developer.android.com/studio/publish/app-signing.html#debugmode

関連する問題