Administrador de Firebase NoClassDefFoundError: FirebaseOptions $ Builder
Estoy usando esto:
FileInputStream serviceAccount; try { serviceAccount = new FileInputStream("firebase_key.json"); } catch (FileNotFoundException e) { System.out.println(e.getMessage()); return; } System.out.println("Reached here!"); FirebaseOptions options = new FirebaseOptions.Builder() .setCredential(FirebaseCredentials.fromCertificate(serviceAccount)) .setDatabaseUrl("https://*.firebaseio.com/") .build(); FirebaseApp.initializeApp(options);
Sin embargo, la aplicación se bloquea con un java.lang.NoClassDefFoundError for FirebaseOptions$Builder
- Cómo resolver No se puede encontrar la actividad explícita en firebase AuthUi?
- Firebase Auth obtiene información adicional del usuario (edad, sexo)
- Inicio de sesión de Google Android con Firebase - statusCode DEVELOPER_ERROR
- Autenticación con Facebook al principio y luego Google provoca un error en Firebase para Android
- Autenticación de código Qr mediante Firebase
Mi build.gradle
:
dependencies { testCompile group: 'junit', name: 'junit', version: '4.11' compile 'com.google.firebase:firebase-admin:4.1.1' }
Estoy usando IntelliJ.
Logcat:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/firebase/FirebaseOptions$Builder 10:57:43 AM web.1 | at com.x.*.TokenGenerator.main(TokenGenerator.java:26) 10:57:43 AM web.1 | Caused by: java.lang.ClassNotFoundException: com.google.firebase.FirebaseOptions$Builder 10:57:43 AM web.1 | at java.net.URLClassLoader.findClass(Unknown Source) 10:57:43 AM web.1 | at java.lang.ClassLoader.loadClass(Unknown Source) 10:57:43 AM web.1 | at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 10:57:43 AM web.1 | at java.lang.ClassLoader.loadClass(Unknown Source)
Tengo mi firebase_key.json en la raíz de la aplicación.
¿Qué está causando esto?
- Lista de recuperación de usuarios de Firebase Authentication
- Guardar clase en firebase
- Obtención de 'E / TokenRequestor: Tiene configuraciones relacionadas con OAuth2 erróneas. Error detallado: INVALID_AUDIENCE 'incluso después de proporcionar identificaciones de cliente precisas
- NoClassDefFoundError: com.google.firebase.FirebaseOptions
- ¿Cómo puedo permitir que mi aplicación acceda a firebase sin un login?
- Integre firebase auth con los puntos finales de la nube de motores de aplicaciones de Google
- Biblioteca de FirebaseUI Auth: falla en el inicio de sesión de Google con: W / AuthMethodPicker: inicio de sesión de Firebase sin éxito
- FCM Token Problema en algún dispositivo Android
El problema resultó ser que estaba usando este comando para construir:
gradlew clean install
Sin embargo, el frasco generado por ese no contiene las dependencias . Y el Firebase Admin SDK es una dependencia.
Así que lo que hice fue usar shadowJar , que genera un Jar que contiene dependencias. A diferencia de gradlew clean install
.
Luego, en el Procfile, lo pongo en el Jar que la sombraJar genera. El único problema que veo tener es, ahora tengo que ir a IntelliJ y ejecutar el shadowJar desde allí, ya que no parece ningún comando para ejecutarlo desde la línea de comandos.
Espero que esto ayude
No estás configurando la importación correcta en el gradle para las opciones de firebase, no hay necesidad de admin package, necesitas el core:
En lugar de compile 'com.google.firebase:firebase-admin:4.1.1'
Utilice la compile "com.google.firebase:firebase-core:10.0.1"
- Prueba de varios dispositivos Android en una máquina
- ¿Por qué mi vista personalizada de Android no es cuadrada?