Utworzono punkt końcowy za pomocą zabezpieczonego backendu i używam go od marca w aplikacji, którą buduję (źródło docs here). Niedawno zainstalowałem najnowszą wersję na moim urządzeniu z Androidem 6.0 i pojawił się nieparzysty błąd (działa idealnie na 4.2.2 & 5.1).GoogleAccountCredential name ma wartość null pomimo wywołania setSelectedAccountName (Android 6.0)
Specyficzny błędu:
IllegalArgumentException: the name must not be empty: null
Które Wywiodłem błędu z poświadczeń, można zobaczyć poniżej kod. Na koncie Android 6.0 może być "[email protected]", ale ciąg "test" okazuje się zerowy!
Czy jest coś szczególnego w wersji 6.0, która zmieniła konto GoogleAccountCredential?
public static GoogleAccountCredential getCredential(Context ctx) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx);
String account = prefs.getString(UserProfileHelper.PREF_USER_ACCOUNT, "");
GoogleAccountCredential credential = GoogleAccountCredential.usingAudience(ctx,
"server:client_id:MY_ACCOUNT_NUMS.apps.googleusercontent.com")
.setSelectedAccountName(account);
String test = credential.getSelectedAccountName();
return credential;
}
Dodano już to uprawnienie. – easycheese
czy prosisz o to, czy jest to tylko w twoim manifeście? – AndroidEnthusiast
O cholera ... Nawet o tym nie pomyślałbyś, pomyślałbyś, że lint to złapie ... Albo że lepszy błąd zostanie rzucony. Prawdopodobnie masz rację, jednak to sprawdzę. – easycheese