Как получить класс com.google.common.base.Precondition для Java gDrive api? - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь настроить интерфейс Java на Google Drive API, следуя краткому руководству, но каждый раз, когда я запускаю свою программу, выдается «NoClassDefFoundError: com / google / common / base / Preconditions». Это также произошло, когда я попытался реализовать Google CustomSearchEngine API.

Я ссылался на все классы API с исходными текстами и без них, а также с приложенными javadocs. Я также пытался использовать findJAR dot com, чтобы получить предварительные условия с небольшим успехом.

Вот строки кода, которые я использовал, на которые ссылается ошибка. Я также включил строки, которые определяют переменные, используемые в строках ошибок, в комментарии над ссылочным кодом.

Строка 61:

/*
private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();

InputStream in = new FileInputStream(clientSecretFilePath);
*/

GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));

Строка 88:

/*
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
*/

Credential credential = getCredentials(HTTP_TRANSPORT);

Ошибка:

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

Кажется, он ведет себя так, как будто класс отсутствует, но я ссылался на все библиотеки API из API Google Диска в конфигурации сборки. Я даже пытался получить отсутствующий класс из findjar dot com с небольшим дополнительным прогрессом.

...