Имя API-интерфейса Календаря Google не должно быть пустым: null - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь вставить событие из моего приложения для Android в календарь Google, но приложение аварийно завершает работу, заявляя, что имя не должно быть пустым, чтобы решить эту проблему. Я предоставил разрешение во время выполнения для getaccounts, но проблема все еще сохраняется.

Здесьмой код: Внутри oncreate () я сделал:

SharedPreferences set = getActivity().getSharedPreferences("PREFS_NAME", 0);
String emailtoken= set.getString("email","").toString();
credential = GoogleAccountCredential.usingOAuth2(
getActivity().getApplicationContext(), Arrays.asList(SCOPES))
        .setSelectedAccountName(emailtoken)
        .setBackOff(new ExponentialBackOff());


mService = new com.google.api.services.calendar.Calendar.Builder(transport, jsonFactory, credential)
        .setApplicationName("Google Calendar API Android Quickstart")
        .build();

Это мой код для вставки событий:

Event event = new Event()
        .setSummary(tskname)
        .setDescription(tskdesc);

DateTime startDateTime = new DateTime("2019-05-20T09:00:00-07:00");
EventDateTime start = new EventDateTime()
        .setDateTime(startDateTime)
        .setTimeZone("America/Los_Angeles");
event.setStart(start);

EventAttendee[] attendees = new EventAttendee[] {
        new EventAttendee().setEmail(emailtoken)
};
event.setAttendees(Arrays.asList(attendees));



String calendarId = "primary";
try {
    event = mService.events().insert(calendarId, event).execute();
} catch (IOException e) {
    e.printStackTrace();
}
Log.i("Event created: %s\n", event.getHtmlLink());

Это моя трассировка стека:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.pmsapp, PID: 29149
    java.lang.IllegalArgumentException: the name must not be empty: null
        at android.accounts.Account.<init>(Account.java:78)
        at android.accounts.Account.<init>(Account.java:63)
        at com.google.android.gms.auth.zzd.getToken(Unknown Source:1)
        at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source:55)
        at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:255)
        at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:279)
        at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859)
        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.pmsapp.fragment.EmployeeTask.addtask(EmployeeTask.java:533)
        at com.pmsapp.fragment.EmployeeTask$25.onClick(EmployeeTask.java:392)
        at android.view.View.performClick(View.java:6312)
        at android.view.View$PerformClick.run(View.java:24811)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:171)
        at android.app.ActivityThread.main(ActivityThread.java:6651)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)

Я новичок в употреблении этого API, любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...