我正在尝试将我的 Java Web 项目连接到 Firebase,以便我能够将我的数据存储在 Firestore 中。我正在使用 Java Admin SDK,遵循官方指南:FirebaseAdminSDK。遗憾的是,在初始化 FirebaseAp 时我遇到了异常:
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;)V
at com.google.firebase.FirebaseApp.checkNotDeleted(FirebaseApp.java:352)
at com.google.firebase.FirebaseApp.getOptions(FirebaseApp.java:267)
at com.google.firebase.FirebaseApp$TokenRefresher.<init>(FirebaseApp.java:434)
at com.google.firebase.FirebaseApp$TokenRefresher$Factory.create(FirebaseApp.java:535)
at com.google.firebase.FirebaseApp.<init>(FirebaseApp.java:113)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:201)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:188)
Run Code Online (Sandbox Code Playgroud)
现在,我到处读到,这是 guava 项目的问题,建议使用不同版本的 guava 库。我尝试了从18开始的所有版本。
然后,我读到这可能是由不同版本中的类路径中的不同库引用的多个番石榴库引起的。于是,我检查了maven依赖树,看看guava是否有多个依赖。没有。
然后,我解压了 .WAR 文件,以查看使用我的应用程序将哪些 jar 部署到 glassfish。那里只有一个番石榴罐(我的 pom.xml 文件指向的那个)。老实说,我已经没有想法了。请帮忙。您可以看到下面附加的 pom.xml 和生成的 Maven 依赖关系树。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.greenstudio</groupId>
<artifactId>trekking-project</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<name>trekking-project</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>5.6.0</version>
<exclusions>
<exclusion>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency> …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Mac OS Big Sur 上构建我的反应本机项目。遇到几个问题,我运行了react_native doctor 命令来验证我的环境。这是诊断报告:
\n\xe2\x9c\x96 Android SDK - Required for building and installing your app on Android\n - Versions found: N/A\n - Version supported: 29.0.3\n \xe2\x9c\x96 ANDROID_HOME\nRun Code Online (Sandbox Code Playgroud)\n在博客上的多篇帖子和 SO 上的答案之后,我创建/编辑了:
\n我的主目录中的 .bash_profile 文件
\n我的主目录中的 .bashrc 文件
\n编辑 /etc/profile 文件\n...并向这些文件添加以下行:
\n导出 ANDROID_HOME=/Users/piotrzielinski/Library/Android/sdk\nexport PATH=$PATH:$ANDROID_HOME/platform-tools\nexport PATH=$PATH:$ANDROID_HOME/tools\nexport PATH=$PATH:$ANDROID_HOME/tools/bin \n导出 PATH=$PATH:$ANDROID_HOME/模拟器
\nANDROID_HOME 中输入的路径取自 Android Studio SDK 管理器。\n不幸的是,没有任何方法可以永久有效。更糟糕的是,我不仅仅谈论重新启动 - 似乎重新启动 VS Code(或其终端)会重置 PATH 变量,并且 ANDROID_HOME 不再可用。
\n请帮忙。
\n