Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Xamarin Android: Java.Lang.IllegalStateException: FirebaseApp name [DEFAULT] already exists!

Olá, estou passando por uma dificuldade no trabalho, procurei mas não achei nenhuma solução e estou tentando perguntar aqui.

Num projeto Xamarin estou tentando inicializar o FirebaseApp (FirebaseApp.InitializeApp(...)), no projeto de teste que só foi feito para isso ele funciona corretamente mas no projeto completo, com mais referências, mesmo com mesmas versões de xamarin, etc, não funciona.

Logo na inicialização do app já é inicializado o [DEFAULT] e quanto tenta criar novamente ele da esse erro:

Java.Lang.IllegalStateException: FirebaseApp name [DEFAULT] already exists! at Java.Interop.JniEnvironment+StaticMethods.CallStaticObjectMethod (Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue args) [0x00069] in <0ad2222fd7074badb5de547b1521aab0>:0 at Android.Runtime.JNIEnv.CallStaticObjectMethod (System.IntPtr jclass, System.IntPtr jmethod, Android.Runtime.JValue parms) [0x0000e] in :0 at Firebase.FirebaseApp.InitializeApp (Android.Content.Context context, Firebase.FirebaseOptions options) [0x0005a] in <9eb73a399f94426da0a6f6162f59beed>:0

E também já inicializa o FirebaseStorage, e , mesmo inicializando com outro nome ele quebra no "FirebaseStorage.Instance.Reference" por que já foi instanciado antes. Fazendo isso gera outro erro:

*Java.Lang.IllegalStateException: FirebaseApp was not initialized with a bucket name. at Java.Interop.JniEnvironment+InstanceMethods.CallObjectMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniMethodInfo method) [0x00068] in <0ad2222fd7074badb5de547b1521aab0>:0 at Android.Runtime.JNIEnv.CallObjectMethod (System.IntPtr jobject, System.IntPtr jmethod) [0x0000e] in :0 at Firebase.Storage.FirebaseStorage.get_Reference () [0x00043] in

{Java.Lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/zzemr; ---> Java.Lang.ClassNotFoundException: Didn't find class "com.google.android.gms.internal.zzemr" on path: DexPathList[[zip file "/data/app/

this._options = options;
this._app = FirebaseApp.InitializeApp(Application.Context, options.FirebaseOptions);

this.Auth = FirebaseAuth.GetInstance(this._app);

this._storageReference = FirebaseStorage.Instance.Reference;
this._dataBaseReference = FirebaseDatabase.Instance.Reference;

//Assim também da erro: 

// FirebaseStorage ints = FirebaseStorage.GetInstance(app);
// FirebaseDatabase database = FirebaseDatabase.GetInstance(app);
//this._storageReference = ints.Reference;
//this._dataBaseReference = database.Reference;

Tentei dar dispose na instância mas não funcionou. Mesmo passando o FirebaseApp no método de pegar instância ele quebra, tentei impedir que o xamarin inicialize o FirebaseApp mas não descobri como.

Se alguém tiver alguma sugestão para me ajudar eu ficarei muito grato. Desde já agradeço a ajuda e atenção.

Pablo Wendel.

1 resposta
solução!

Estava faltando referências. Se possível, pode deletaressa pergunta.