Я создаю приложение в Eclipse, используя Gradle.
Когда я тестирую приложение, запустив его из Eclipse, все работает так, как должно - однако, когда я пытаюсь экспортировать и запускать файл .jar, я получаю следующую ошибку:
Failed for: .\ServiceAccountKey.json (The system cannot find the file specified)
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/firebase/cloud/FirestoreClient
at main.Main.getSuroviny(Main.java:105)
at main.Main.main(Main.java:39)
Caused by: java.lang.ClassNotFoundException: com.google.firebase.cloud.FirestoreClient
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Мой файл build.gradle выглядит следующим образом:
apply plugin: 'java-library'
apply plugin: 'java'
// In this section you declare where to find the dependencies of your project
repositories {
// Use jcenter for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
google()
}
dependencies {
// This dependency is exported to consumers, that is to say found on their compile classpath.
api 'org.apache.commons:commons-math3:3.6.1'
// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'com.google.guava:guava:23.0'
implementation 'com.google.firebase:firebase-admin:5.8.0'
implementation 'com.google.gms:google-services:4.0.1'
implementation 'com.google.firebase:firebase-core:16.0.6'
//dependency for using firebase database
implementation 'com.google.firebase:firebase-database:16.0.6'
//dependency for email and password authentication
implementation 'com.google.firebase:firebase-auth:16.1.0'
//dependency for cloud storage
implementation 'com.google.firebase:firebase-storage:16.0.5'
implementation 'com.google.firebase:firebase-firestore:18.0.0'
// Use JUnit test framework
testImplementation 'junit:junit:4.12'
}
// Include dependent libraries in archive.
jar {
manifest {
attributes "Main-Class": "main.Main"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
Я дважды проверил все операции импорта и реализации, кажется, все правильно, основываясь на информации, которую мне удалось найти в документации Firestore.
Кроме того, я уже пытался поэкспериментировать с несколькими вещами: ошибка изменяется при первом обнаруженном им первом методе - это DocumentReference, FirestoreClient или что-то еще.
Спасибо всем, кто заранее порекомендовал.