我遇到过这个当前项目的大量问题,可以在我在StackOverflow上发布的其他问题中找到(其中一个尚未解决),但是以允许的方式避开我的其他问题我测试,但实际上没有发布应用程序,我遇到了另一个错误; 在这段代码中:
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("oscarcookeabbott@gmail.com");
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;
}
}
它返回此错误:
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)
我真的希望表单编辑很简单,例如如何在不使用API的情况下使用Sheet的直接JSON提要,但似乎我错了。
答案 0 :(得分:2)
我今天遇到了同样的问题,我这样解决了:
首先,在您调试时,默认情况下,Android Studio使用的密钥库与您编译和签署APK时通常使用的密钥库不同。 这意味着您拥有两个不同的密钥库,两个不同的密钥具有两个不同的SHA1指纹。
默认情况下,用于调试的密钥库位于以下路径&#34;〜/ .android / debug.keystore&#34; 中,而您用于发布版本可以在任何地方,因为您必须手动创建它。
Android Studio为您的调试版创建的密钥库包含一个名为 androiddebugkey 的密钥,它的默认密码是 android ,与密码相同密钥库中。
现在,您需要做什么:
1)打开命令行
2)使用keytool命令,键入keytool -exportcert -keystore <path-to-debug-or-production-keystore> -list -v
3)输入密码( android ),从显示的内容中获取SHA1密钥,并将其添加到API界面中。
https://developer.android.com/studio/publish/app-signing.html#debugmode