android - How do you interpret "java.lang.NoSuchMethodError: No direct method"? -
we decided, perhaps naively, should update many of our libraries two-year-old 1.12.0-betas nice new versions 1.20.0. example: updated google-http-client-1.12.0-beta.jar google-http-client-android-1.20.0.jar.
when execute code:
list<string> scopes = lists.newarraylist(sendtogoogleutils.fusion_tables_scope); googleaccountcredential credential = sendtogoogleutils.getgoogleaccountcredential( context, account.name, scopes ); if (credential == null) { return false; } fusiontables fusiontables = new fusiontables.builder( androidhttp.newcompatibletransport(), new gsonfactory(), credential).build();
we amazing error report:
fatal exception caused by: java.lang.nosuchmethoderror: no direct method <init>(lcom/google/api/client/http/httptransport;lcom/google/api/client/http/httprequestinitializer;ljava/lang/string;ljava/lang/string;lcom/google/api/client/json/jsonobjectparser;lcom/google/api/client/googleapis/services/googleclientrequestinitializer;ljava/lang/string;z)v in class lcom/google/api/client/googleapis/services/json/abstractgooglejsonclient; or super classes (declaration of 'com.google.api.client.googleapis.services.json.abstractgooglejsonclient' appears in /data/app/dkr.ajijic.apps.tm-1/base.apk)
does know how interpret it? sure don't!
it means constructor abstractgooglejsonclient particular argument list wasn't available.
check super()
calls subclass(es) of abstractgooglejsonclient
, make sure don't need update argument list match updated libraries.
if that's not in source code, there may library version dependency issue google api client library.
Comments
Post a Comment