I'm trying to get a Java interface going with Google Drive API by following the quickstart tutorial, but every time I run my program it throws "NoClassDefFoundError: com/google/common/base/Preconditions." This has also happened when I tried implementing the Google CustomSearchEngine API.
I have referenced all API classes with and without sources and javadocs attached. I have also attempted using findJAR dot com in attempt to obtain Preconditions with little success.
Here are the lines of the code I used that the error references. I have also included the the lines which define the variables used within the error lines in comments above the referenced code.
Line 61:
/*
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
InputStream in = new FileInputStream(clientSecretFilePath);
*/
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
Line 88:
/*
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
*/
Credential credential = getCredentials(HTTP_TRANSPORT);
Error:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Preconditions
at com.google.api.client.util.Preconditions.checkNotNull(Preconditions.java:127)
at com.google.api.client.json.jackson2.JacksonFactory.createJsonParser(JacksonFactory.java:80)
at com.google.api.client.json.JsonFactory.fromReader(JsonFactory.java:236)
at com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets.load(GoogleClientSecrets.java:192)
at drive.GDrive.getCredentials(GDrive.java:61)
at drive.GDrive.main(GDrive.java:88)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Preconditions
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
It appears to behave as if a class is missing, but I have referenced all API libraries from Google Drive's API in the build config. I have even tried getting the missing class from findjar dot com with little additional progress.
Remove existing dependencies and add dependencies from below links:
google-oauth-client-jetty-1.23.0
google-api-services-drive-v3-rev110-1.23.0
Happy Coding :-)