Spanish Apk con Firebase no corre

dhernandez

Active Member
Licensed User
Longtime User
Buen dia a todos, de nuevo me tienen por aquí con un nuevo dolor de cabeza-Firebase.

Ya miré los tutoriales de Erel hasta el cansancio y creo que nada estoy haciendo mal. No logro hacer funcionar la conexion entre b4a y Firebase. Tengo todo tal cual el ejemplo de Erel, y he leido mas temas relacionados con Firebase y hasta el momento no he podido.
Y el log no marca nada de registros. Solo al momento de correr la App me sale el mensaje, Se ha detenido TestFireBase - Aceptar.
Oriéntenme por favor :( .
 

josejad

Expert
Licensed User
Longtime User
Y el log no marca nada de registros
Hola:

Esto no debería ser así, algún error debe salir. Comprueba que lo estás haciendo en modo debug y estés conectado con B4A-Bridge o con cable USB.
En modo release también debe salir algún error, pero comprueba que tienes puesto al inicio de la aplicación, dentro de "#Region Project Attributes"
B4X:
#BridgeLogger: True

Si aún así no saliera raro (que sería raro), quita la marca de "Filtrar" del cajetín que tienes bajo el log, a la izquierda de los botones "Conectar, Limpiar, ...."
Ya con ese error que te de, podremos buscar algo en el foro a ver por dónde van los tiros.

saludos,
 

dhernandez

Active Member
Licensed User
Longtime User
Gracias por responder @José J. Aguilar , todo lo que mencionas está revisado.
B4X:
#Region  Project Attributes
    #ApplicationLabel: TestFirebase
    #VersionCode: 1
    #VersionName:
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: portrait
    #CanInstallToExternalStorage: False
    #BridgeLogger: True
#End Region

Uso un dispositivo real por medio de Wifi y uso un Emulador de B4A y me aparece el mismo mensaje en la pantalla de: Se ha detenido TestFirebase - Aceptar

Tambien tengo el archivo manifest de esta manera:
B4X:
'End of default text.
CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)
CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)
CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)
CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)

Tengo el Modulo de servicio FirebaseMessaging:
B4X:
#Region  Service Attributes
    #StartAtBoot: False
    
#End Region

Sub Process_Globals
    Private fm As FirebaseMessaging
End Sub

Sub Service_Create
    fm.Initialize("fm")
End Sub

Public Sub SubscribeToTopics
    fm.SubscribeToTopic("general") 'you can subscribe to more topics
End Sub

Sub Service_Start (StartingIntent As Intent)
    If StartingIntent.IsInitialized Then fm.HandleIntent(StartingIntent)
    Sleep(0)
    Service.StopAutomaticForeground 'remove if not using B4A v8+.
End Sub

Sub fm_MessageArrived (Message As RemoteMessage)
    Log("Message arrived")
    Log($"Message data: ${Message.GetData}"$)
    Dim n As Notification
    n.Initialize
    n.Icon = "icon"
    n.SetInfo(Message.GetData.Get("title"), Message.GetData.Get("body"), Main)
    n.Notify(1)
End Sub

Sub Service_Destroy

End Sub

Tengo en el archivo de Servicio Start en el Service_Start el CallSubDelayed:
B4X:
Sub Service_Start (StartingIntent As Intent)
    'Service.StopAutomaticForeground 'Starter service can start in the foreground state in some edge cases.
    CallSubDelayed(FirebaseMessaging, "SubscribeToTopics")
End Sub

tengo las Librerías:
1584547338376.png


Tengo los Google Services Actualizados. el SDK tambien
 

josejad

Expert
Licensed User
Longtime User
me aparece el mismo mensaje en la pantalla
¿Entiendo que te refieres a la pantalla del móvil?
Pero, no aparece ningún mensaje en el log del IDE?

1584547344826.png
 

dhernandez

Active Member
Licensed User
Longtime User
En el LOG del IDE no aparece Nada, totalmente en blanco, me imagino yo que es porque no se lanza la aplicación, porque ese error me dá al iniciarlo, pero tampoco me dice en que estoy mal
 

josejad

Expert
Licensed User
Longtime User
¿Puedes exportar como zip tu app y subirla?
 

dhernandez

Active Member
Licensed User
Longtime User
Claro, dame un momento
 

dhernandez

Active Member
Licensed User
Longtime User
Aquí está el zip
 

Attachments

  • misNotificaciones.zip
    11 KB · Views: 226

josejad

Expert
Licensed User
Longtime User
A mí se me inicia bien. (he tenido que añadir mi google-services.json y cambiar el nombre del paquete)

B4X:
Copying updated assets files (1)
--------- beginning of system
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
*** Service (firebasemessaging) Create ***
** Service (firebasemessaging) Start **
** Activity (main) Pause, UserClosed = false **

Prueba de nuevo a seguir paso a paso todas las instrucciones del tutorial

Si no, la única diferencia es nuestro google-services.json, comprueba que lo tienes todo bien en la consola de Firebase.
No sé qué haces en tu sub CheckForGooglePlayServices, ya que devuelve un Boolean, pero no se lo asignas a nada.

saludos,
 

dhernandez

Active Member
Licensed User
Longtime User
Gracias por tu respuesta: He descargado y configurado un nuevo proyecto desde cero y volver a crear el json. Lo pongo en los archivos de mi App. y en Firebase se queda asi aunque ejecute el APK.

1584549669126.png


CheckForGooglePlayServices es para probar si Google Play Services está disponible con FirebaseAnalytics.IsGooglePlayServicesAvailable devuelve True si lo está, pero eso no tiene nada que ver con el error
 

dhernandez

Active Member
Licensed User
Longtime User
Comenté ésta linea en el manifest:
B4X:
CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)

ya me deja correr la app, pero el log me muestra lo siguente:
B4X:
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
*** Service (firebasemessaging) Create ***
firebasemessaging_service_create (java line: 162)
java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.cymez.ti.pushTest. Make sure to call FirebaseApp.initializeApp(Context) first.
    at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@19.3.0:184)
    at com.google.firebase.messaging.FirebaseMessaging.getInstance(com.google.firebase:firebase-messaging@@20.1.2:1)
    at anywheresoftware.b4a.objects.FirebaseNotificationsService$FirebaseMessageWrapper.Initialize(FirebaseNotificationsService.java:97)
    at com.cymez.ti.pushTest.firebasemessaging._service_create(firebasemessaging.java:162)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:196)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:176)
    at com.cymez.ti.pushTest.firebasemessaging.onCreate(firebasemessaging.java:56)
    at android.app.ActivityThread.handleCreateService(ActivityThread.java:3060)
    at android.app.ActivityThread.-wrap4(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1585)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:207)
    at android.app.ActivityThread.main(ActivityThread.java:5763)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
 

josejad

Expert
Licensed User
Longtime User
Hum, no recuerdo ahora mismo, pero creo que ese paso a mí me ha funcionado sólo una vez, pero la app va.
 

josejad

Expert
Licensed User
Longtime User
Default FirebaseApp is not initialized in this process

Bueno, ya con errores se puede investigar un poco más, echa un vistazo en el foro
 

dhernandez

Active Member
Licensed User
Longtime User
Gracias, como te dije antes, ya busqué en el foro todos los títulos con ese error y he modificado, borrado, añadido lineas de código y aun nada :(

No entiendo como hay que inicializar ese proceso o a que se refiere
 

josejad

Expert
Licensed User
Longtime User
Este es mi manifest:

B4X:
'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136
AddManifestText(
<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="26"/>
<supports-screens android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:anyDensity="true"/>)
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.

CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)
CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)
CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)
CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)
CreateResourceFromFile(Macro, FirebaseAuth.FirebaseAuth)


'Líneas para Crashlitycs
AddApplicationText(
 <provider
            android:name="com.crashlytics.android.CrashlyticsInitProvider"
            android:authorities="$PACKAGE$.crashlyticsinitprovider"
            android:exported="false"
            android:initOrder="100" />
           )
        
CreateResource(values, com_crashlytics_build_id.xml,
<resources xmlns:tools="http://schemas.android.com/tools">
<string tools:ignore="UnusedResources,,TypographyDashes" name="com.crashlytics.android.build_id"
   translatable="false">cc7c8eddb7024f38a1b4491ef215342f3</string>
</resources>)

'Necesario para GeoFence
AddPermission(android.permission.ACCESS_FINE_LOCATION)
CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)

SetApplicationAttribute(android:icon, "@mipmap/ic_launcher")
CreateResource(mipmap-anydpi-v26, ic_launcher.xml,
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@mipmap/background"/>
    <foreground android:drawable="@mipmap/foreground"/>
</adaptive-icon>
)
 

dhernandez

Active Member
Licensed User
Longtime User
Gracias, por ello.
Pero no sé si por esto el error de arriba:
Tengo comentado la linea en el Manifest la siguiente linea y me corre la app y en seguida me registra los errores en el log.
B4X:
''CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)

Pero lo descomento y ya no corre la app ni me muestra en el log los errores, solo el Se ha detenido TestFireBase - Aceptar:
B4X:
CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)
 

josejad

Expert
Licensed User
Longtime User
Bueno, en tu caso no la necesitas para probar las notificaciones Push.
Tienes actualizado el SDK? Compilas con AndroidX? Creo haber visto mensajes estos días con algunos problemas con Firebase.
 

dhernandez

Active Member
Licensed User
Longtime User
todo tengo actualizado, por eso mi duda. No se que pasa
 

josejad

Expert
Licensed User
Longtime User
Echa un vistazo a este post si no los has hecho... Ya no se me ocurre nada más, jeje

 

Xicu

Active Member
Licensed User
Longtime User
A mí se me inicia bien. (he tenido que añadir mi google-services.json y cambiar el nombre del paquete)
He seguido los mismos pasos y a mi tambien me funciona. La unica pega detectada, es que al enviar mensajes desde la consola de firebase recibo campos null, pero si no mal recuerdo, Erel comentaba que no era conveniente el uso de la consola firebase para enviar mensajes.

Comenté ésta linea en el manifest:
No comentes esta linea. Es la causa de tu error. La que se puede comentar es la siguiente
B4X:
'CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)

Prueba este interesante ejemplo llamado xerpchat.

 
Top