1

我想在我的 java 应用程序中使用 firebase admin。在网站上它说我可以通过 gradle 或 maven 添加它。但我不想那样做。相反,我从 maven 中央存储库网站下载了 jar 文件,并将其作为库添加到我的项目中。我添加了firebase指南部分中所述的代码并运行应用程序,我得到以下输出;

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONException
    at error.myclass.main(myclass.java:17)
Caused by: java.lang.ClassNotFoundException: org.json.JSONException
    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)
    ... 1 more

所以我尝试添加库来解决问题,每次运行应用程序时都会遇到另一个错误。这些是我目前添加的库:

com.google.guava_1.6.0.jar
firebase-admin-4.0.3.jar
google-api-client-1.4.1-beta.jar
google-api-client-gson-1.22.0.jar
google-api-java-client-ext.jar
google-http-client-1.16.0-rc.jar
java-json.jar

现在我得到的唯一错误是:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.api.client.json.gson.GsonFactory.getDefaultInstance()Lcom/google/api/client/json/gson/GsonFactory;
    at com.google.firebase.FirebaseOptions$Builder.setServiceAccount(FirebaseOptions.java:76)
    at MyClass.cool.main(cool.java:18)

我已经正确添加了所有库,所以我不明白为什么这不起作用。所以我的问题是如何在不使用 gradle 或 maven 的情况下成功地将 firebase admin 添加到 eclipse 中的 java 项目中。

4

2 回答 2

1

就我而言,JSON-java-1.4.jar 似乎可以代替 java-json.jar 工作。您可以从GitHub 中的 JSON-java 进行git clone 。

于 2017-04-21T23:55:42.017 回答
1

我最终学习了如何使用 Maven,当您了解如何正确设置项目并访问 pom.xml 文件时,这实际上很简单。当我导出项目(带有库)时,所需的所有必要 jar 都位于我在 Dropbox 上链接的文件夹中。

链接:Dropbox - Firebase Admin Jars(2017 年 8 月)

图书馆名称:

  • commons-codec-1.3.jar
  • commons-logging-1.1.1.jar
  • firebase-admin-5.2.0.jar
  • google-api-client-1.22.0.jar
  • google-api-client-gson-1.22.0.jar
  • google-http-client-1.22.0.jar
  • google-http-client-gson-1.22.0.jar
  • google-http-client-jackson2-1.22.0.jar
  • google-oauth-client-1.22.0.jar
  • gson-2.1.jar
  • 番石榴-20.0.jar
  • httpclient-4.0.1.jar
  • httpcore-4.0.1.jar
  • 杰克逊核心2.1.3.jar
  • json-20160810.jar
  • jsr305-1.3.9.jar

请注意,链接的文件不太可能更新,因此我建议使用 Maven,它应该根据 pom.xml 文件中的版本号下载所有正确的库。

于 2017-09-08T01:18:25.143 回答