java.lang.NoClassDefFoundError no Android com GoogleAccountCredential.newChooseAccountIntent ()
Estou desenvolvendo para o Android 4+ com o pacote Eclipse Juno ADT + Google Plugin for Eclipse. Eu preciso fazer login programaticamente em uma conta do google para usar a API do Google Agenda. Para isso, estou usando o gerenciador de contas. Estou tendo o erro a seguir:
05-05 13:28:55.605: E/AndroidRuntime(11186): FATAL EXCEPTION: main
05-05 13:28:55.605: E/AndroidRuntime(11186): java.lang.NoClassDefFoundError: com.google.android.gms.common.AccountPicker
05-05 13:28:55.605: E/AndroidRuntime(11186): at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.newChooseAccountIntent(GoogleAccountCredential.java:171)
05-05 13:28:55.605: E/AndroidRuntime(11186): ...
Aqui está o código que causa isso:
GoogleAccountCredential credential;
credential = GoogleAccountCredential.usingOAuth2(this, CalendarScopes.CALENDAR);
chooseAccount();
private void chooseAccount() {
startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
}
Eu pesquisei stackoverflow para soluções. O diretório libs contém os arquivos da biblioteca de calendários para o eclipse que eu importei através do google plugin para eclipse (que também coloca lá as bibliotecas de autenticação etc ...):
android-support-v4.jar
google-api-client-1.14.1-beta.jar
google-api-client-android-1.14.1-beta.jar
google-api-services-calendar-v3-rev41-1.14.2-beta.jar
google-http-client-1.14.1-beta.jar
google-http-client-android-1.14.1-beta.jar
google-http-client-gson-1.14.1-beta.jar
google-http-client-jackson-1.14.1-beta.jar
google-http-client-jackson2-1.14.1-beta.jar
google-oauth-client-1.14.1-beta.jar
gson-2.1.jar
jackson-core-2.1.3.jar
jackson-core-asl-1.9.11.jar
jsr305-1.3.9.jar
No entanto, estes não parecem incluir
com.google.android.gms.common.AccountPicker
Se eu importar isso no meu código, a linha de código de importação será marcada como um erro. Então, como vai. Copiei este código do Google Calendar Sample, onde ele funciona bem:
http://samples.google-api-java-client.googlecode.com/hg/calendar-android-sample/
Esse código tem exatamente as mesmas libs, exceto:
calendário lib é rev33 em vez de rev41As bibliotecas jackson e jackson-asl estão faltandoarquivo .properties para cada arquivo de biblioteca presente no código de amostra, mas não no meu códigoEntão isso não deve ser o problema. No entanto, procurando na seção de importações do código, o código de amostra do Google Agenda possui:
import com.google.android.gms.common.GooglePlayServicesUtil;
mas se eu tentar inserir esta linha de código no meu código, ele será marcado como um erro dizendo que a importação com.google.android.gms.common.GooglePlayServicesUtil não pode ser resolvida.
Esta postagem
java.lang.NoClassDefFoundError: com.google.android.gms.common.AccountPicker
diz que eles foram capazes de
import com.google.android.gms.common.AccountPicker;
Mas gostaria de saber de que biblioteca veio.
Eu até tentei procurar na amostra de calendário android original para a biblioteca da qual eu posso incluir com.google.android.gms.common. * Inspecionando um arquivo de cada vez, mas não consegui encontrá-lo. Como isso é possível?
O que estou fazendo de errado?
Muito obrigado por toda sua ajuda.