Spanish [SOLUCIONADO] Firebase - problemas con manifest

juan manuel luzuriaga

Member
Licensed User
Hola a todos, ayer hice todo el procedimiento para firebase. Y cuando agrego las líneas al manifest y lo compilo tengo el siguiente error.

B4X:
B4A version: 6.50
Parsing code.    (0.01s)
Compiling code.    (0.24s)
Compiling layouts code.    (0.02s)
Organizing libraries.    (1.64s)
Generating R file.    (0.25s)
Compiling generated Java code.    (1.40s)
Convert byte code - optimized dex.    (1.80s)
Packaging files.    (1.03s)
Copying libraries resources    (0.08s)
    Found 1 resource files.
Signing package file (private key)    (1.47s)
ZipAlign file.    (0.12s)
Installing file to device.    Error
[  3%] /data/local/tmp/LGCIntegral.apk
[  6%] /data/local/tmp/LGCIntegral.apk
[ 10%] /data/local/tmp/LGCIntegral.apk
[ 13%] /data/local/tmp/LGCIntegral.apk
[ 17%] /data/local/tmp/LGCIntegral.apk
[ 20%] /data/local/tmp/LGCIntegral.apk
[ 24%] /data/local/tmp/LGCIntegral.apk
[ 27%] /data/local/tmp/LGCIntegral.apk
[ 31%] /data/local/tmp/LGCIntegral.apk
[ 34%] /data/local/tmp/LGCIntegral.apk
[ 38%] /data/local/tmp/LGCIntegral.apk
[ 41%] /data/local/tmp/LGCIntegral.apk
[ 45%] /data/local/tmp/LGCIntegral.apk
[ 48%] /data/local/tmp/LGCIntegral.apk
[ 52%] /data/local/tmp/LGCIntegral.apk
[ 55%] /data/local/tmp/LGCIntegral.apk
[ 59%] /data/local/tmp/LGCIntegral.apk
[ 62%] /data/local/tmp/LGCIntegral.apk
[ 66%] /data/local/tmp/LGCIntegral.apk
[ 69%] /data/local/tmp/LGCIntegral.apk
[ 73%] /data/local/tmp/LGCIntegral.apk
[ 76%] /data/local/tmp/LGCIntegral.apk
[ 80%] /data/local/tmp/LGCIntegral.apk
[ 83%] /data/local/tmp/LGCIntegral.apk
[ 87%] /data/local/tmp/LGCIntegral.apk
[ 90%] /data/local/tmp/LGCIntegral.apk
[ 94%] /data/local/tmp/LGCIntegral.apk
[ 97%] /data/local/tmp/LGCIntegral.apk
[100%] /data/local/tmp/LGCIntegral.apk
    pkg: /data/local/tmp/LGCIntegral.apk
Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

Borre lo cargado en el manifest y deje la librería de Firebase y JSON y compila bien y lo descarga.

Este es el contenido de 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="19"/>
<supports-screens android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.

'************ Google Play Services Base ************
AddApplicationText(
   <activity android:name="com.google.android.gms.common.api.GoogleApiActivity"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:exported="false"/>
    <meta-data
  android:name="com.google.android.gms.version"
  android:value="@integer/google_play_services_version" />
)
'************ Google Play Services Base (end) ************

'************ Firebase Base ************
CreateResourceFromFile("google-services", "google-services.json")
AddPermission(android.permission.ACCESS_NETWORK_STATE)
AddPermission(android.permission.INTERNET)
AddPermission(android.permission.WAKE_LOCK)
AddPermission(com.google.android.c2dm.permission.RECEIVE)
AddPermission(${applicationId}.permission.C2D_MESSAGE)
AddManifestText( <permission android:name="${applicationId}.permission.C2D_MESSAGE"
  android:protectionLevel="signature" />)
AddApplicationText(
<receiver
  android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
  android:enabled="true">
  <intent-filter>
  <action android:name="com.google.android.gms.measurement.UPLOAD"/>
  </intent-filter>
  </receiver>

  <service
  android:name="com.google.android.gms.measurement.AppMeasurementService"
  android:enabled="true"
  android:exported="false"/>
   <provider
  android:authorities="${applicationId}.firebaseinitprovider"
  android:name="com.google.firebase.provider.FirebaseInitProvider"
  android:exported="false"
  android:initOrder="100" />
    <receiver
  android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
  android:enabled="true">
  <intent-filter>
  <action android:name="com.google.android.gms.measurement.UPLOAD"/>
  </intent-filter>
  </receiver>

  <service
  android:name="com.google.android.gms.measurement.AppMeasurementService"
  android:enabled="true"
  android:exported="false"/>
   <receiver
  android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
  android:exported="true"
  android:permission="com.google.android.c2dm.permission.SEND" >
  <intent-filter>
  <action android:name="com.google.android.c2dm.intent.RECEIVE" />
  <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
  <category android:name="${applicationId}" />
  </intent-filter>
  </receiver>
    <receiver
  android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver"
  android:exported="false" />


  <service
  android:name="com.google.firebase.iid.FirebaseInstanceIdService"
  android:exported="true">
  <intent-filter android:priority="-500">
  <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
  </intent-filter>
  </service>
)
'************ Firebase Base (end) ************

'************ Firebase Notifications ************
AddApplicationText(
    <service
  android:name="com.google.firebase.messaging.FirebaseMessagingService"
  android:exported="true">
  <intent-filter android:priority="-500">
  <action android:name="com.google.firebase.MESSAGING_EVENT" />
  </intent-filter>
  </service>
   <service android:name="anywheresoftware.b4a.objects.FirebaseNotificationsService">
     <intent-filter>
  <action android:name="com.google.firebase.MESSAGING_EVENT"/>
     </intent-filter>
   </service>
)
'************ Firebase Notifications (end)************

'************ Firebase Analytics ************
AddApplicationText(
  <receiver
  android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
  android:enabled="true">
  <intent-filter>
  <action android:name="com.google.android.gms.measurement.UPLOAD"/>
  </intent-filter>
  </receiver>

  <service
  android:name="com.google.android.gms.measurement.AppMeasurementService"
  android:enabled="true"
  android:exported="false"/>

  <service android:name="com.google.firebase.crash.internal.service.FirebaseCrashReceiverService"
  android:process=":background_crash"/>

  <service android:name="com.google.firebase.crash.internal.service.FirebaseCrashSenderService"
  android:process=":background_crash"/>
)
'************ Firebase Analytics (end) ************

'************ Firebase Ads ************
AddApplicationText(
  <activity
  android:name="com.google.android.gms.ads.AdActivity"
  android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
  android:theme="@android:style/Theme.Translucent" />
  <activity android:name="com.google.android.gms.ads.purchase.InAppPurchaseActivity"
  android:theme="@style/Theme.IAPTheme"/>
)
'************ Firebase Ads (end) ************

'************ Firebase Auth ************
AddApplicationText(
  <activity android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:excludeFromRecents="true"
  android:exported="false" />

  <service
  android:name="com.google.android.gms.auth.api.signin.RevocationBoundService"
  android:exported="true"
  android:permission="com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION" />
)
'************ Firebase Auth (end) ************

Yo en el código no agregue nada todavía solo cargue el manifest y las librerías para ver si estaba bien.
La idea es despues habilitar unos banner de Admob, pero todavía no cargue nada de eso.

Gracias
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Esto tiene toda la pinta a un error en la copia, que al hacer un copiar y pegar algunos caracteres especiales son mal copiados por otros muy parecidos. Esto suele pasar mas cuando copiamos a un archivo (word, bloc de notas, etc) y luego lo pegamos en el manifest.
Hay un error muy típico que es con los guiones, que en vez de emplear este: http://unicode-table.com/en/#002D , mete este: [url]http://unicode-table.com/en/#2010[/URL]

Yo te aconsejaria que lo copiaras directamente desde la fuente al manisfest. Y miraras si en el fichero de manifest te da algun error una vez copiado, hay errores que en las nuevas versiones de B4A en el logs te dice el error.

Saludos
 

juan manuel luzuriaga

Member
Licensed User
Gracias Jesus, lo pruebo. El codigo lo copie del post de la web directamente. Buscando en otros post, vi el tema del Log. Ahora copio el error que sale cuando lo esta descargando:
B4X:
starting scan for "AP_B01"-WPA_PSK with 2462
vendor/qcom/proprietary/RIDL/RIDLClient/RIDLSQL.cpp:2500: GetTransState() EBADF
vendor/qcom/proprietary/RIDL/RIDLClient/MainCore.cpp:1550: Failed to get TransState, rc 9
vendor/qcom/proprietary/RIDL/RIDLClient/RIDLSQL.cpp:2500: GetTransState() EBADF
vendor/qcom/proprietary/RIDL/RIDLClient/RIDLSQL.cpp:2500: GetTransState() EBADF
>>>>>> START com.android.internal.os.RuntimeInit uid 2000 <<<<<<
CheckJNI is OFF
No timezone override file found: /data/misc/zoneinfo/current/icu/icu_tzdata.dat
register_android_hardware_Radio DONE
Calling main entry com.android.commands.pm.Pm
Failed to load assets verifier: 0
[1] com.google.android.vending.verifier.PackageVerificationReceiver.onReceive(41): Verification requested, id = 11
[10608] com.google.android.vending.verifier.ak.b(468): Exception reading file:///data/local/tmp/LGCIntegral_RAPID_DEBUG.apk in request id=11 java.lang.NullPointerException: Attempt to read from field 'android.content.pm.ApplicationInfo android.content.pm.PackageInfo.applicationInfo' on a null object reference
[1] com.google.android.vending.verifier.ak.c(195): Verification complete: id=11, package_name=LGC.Integral
[1] com.google.android.vending.verifier.ak.g(17021): Verifying id=11, result=1
Copying /data/local/tmp/LGCIntegral_RAPID_DEBUG.apk to base.apk
Failed to load assets verifier: 0
Failed parse during installPackageLI
android.content.pm.PackageParser$PackageParserException: /data/app/vmdl386737493.tmp/base.apk (at Binary XML file line #14): Bad class name LGC.Integral.permission.C2D_MESSAGE in package LGC.Integral
    at android.content.pm.PackageParser.parseBaseApk(PackageParser.java:911)
    at android.content.pm.PackageParser.parseClusterPackage(PackageParser.java:809)
    at android.content.pm.PackageParser.parsePackage(PackageParser.java:773)
    at com.android.server.pm.PackageManagerService.installPackageLI(PackageManagerService.java:12659)
    at com.android.server.pm.PackageManagerService.access$3300(PackageManagerService.java:296)
    at com.android.server.pm.PackageManagerService$9.run(PackageManagerService.java:10477)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:234)
    at android.os.HandlerThread.run(HandlerThread.java:61)
    at com.android.server.ServiceThread.run(ServiceThread.java:46)
Starting a blocking GC Explicit
Explicit concurrent mark sweep GC freed 83363(4MB) AllocSpace objects, 15(708KB) LOS objects, 25% free, 45MB/61MB, paused 1.377ms total 138.659ms
System.exit called, status: 1
VM exiting with result code 1.
vendor/qcom/proprietary/RIDL/RIDLClient/RIDLSQL.cpp:2500: GetTransState() EBADF
vendor/qcom/proprietary/RIDL/RIDLClient/MainCore.cpp:1550: Failed to get TransState, rc 9
vendor/qcom/proprietary/RIDL/RIDLClient/RIDLSQL.cpp:2500: GetTransState() EBADF
vendor/qcom/proprietary/RIDL/RIDLClient/RIDLSQL.cpp:2500: GetTransState() EBADF

Me parece que es algo con el nombre de la aplicación. Pero eso lo coloca automático.
Voy a reemplazar el código a mano para no tener errores.

Gracias
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Juan Manuel, resolviste el problema? es para que le añadas al título [SOLUCIONADO] o si encontraste la solución y era otra la expongas.

Gracias

Saludos
 

juan manuel luzuriaga

Member
Licensed User
No todavía no le encontre la solucion. Voy a crear ahora un proyecto de test en firebase para ver si sigue ocurriendo la falla. Y sino lo encuentro voy a usar Admob sin firebase y listo. Cuando le de una solución lo comento y lo cierro.
Muchas gracias
 

Matias Ferrer

Member
Licensed User
Longtime User
Juan, No me queda muy claro tu error.
El sábado pasado implemente admob con firebase sin problemas.
Te subo mi proyecto hoy por la tarde así probas..

Saludos,
 

juan manuel luzuriaga

Member
Licensed User
Me contestaron the un foro de android, que el problema es que le falta un punto al nombre de la aplicación.
En esta sentencia que donde tengo el error. Antes del signo "$" colocar un "."
B4X:
AddManifestText( <permission android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>)
Quedando de esta manera
B4X:
AddManifestText( <permission android:name=".${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>)
Con eso compilo y descargo la aplicación

Con esto doy por solucionado este punto.

Muchas gracias
 

desof

Well-Known Member
Licensed User
Longtime User
Juan, No me queda muy claro tu error.
El sábado pasado implemente admob con firebase sin problemas.
Te subo mi proyecto hoy por la tarde así probas..

Saludos,
Hola amigo, puedes compartir el ejemplo yaque estoy tratando hace rato de crear la conexion con Firebase y no lo logro!

GraCIAS
 

juan manuel luzuriaga

Member
Licensed User
Hola Desof, te paso el ejemplo de prueba que hice. Se conectó y lo vi en la consola. Tiene todo los ítems configurados en el manifest.
Lo que si tenes que crear un proyecto en Firebase para probarlo. Y bajar el archivo JSON.
 

Attachments

  • testing_firebase_funcionando.zip
    9.5 KB · Views: 364

desof

Well-Known Member
Licensed User
Longtime User
Hola Desof, te paso el ejemplo de prueba que hice. Se conectó y lo vi en la consola. Tiene todo los ítems configurados en el manifest.
Lo que si tenes que crear un proyecto en Firebase para probarlo. Y bajar el archivo JSON.
Ok! y que consideración tengo que tener al crear el proyecto en Firebase ?
Nombre ?

Me da este error
 
Last edited:

juan manuel luzuriaga

Member
Licensed User
si, es eso. Fijate que el nombre "pepe.jose" que creaste en firebase debe ser el mismo que cargas en el proyecto de b4A. Que en mi caso fue "Test.addies". Com ote muestro en la figura abajo.



Lo otro es que puedes hacer es abrir el archivo json y fijate en la siguiente sentencia.

B4X:
"android_client_info": {
          "package_name": "Test.addies"
        }

Ahi tenes el nombre que tiene en firebase cargado.
El archivo "google-services.json" tiene que quedar en la carpeta donde está el proyecto de ba4.
Saludos espero que te sirva.
 

desof

Well-Known Member
Licensed User
Longtime User
hOLA AMIGO!!

MUCHAS GRACIAS POR TU AYUDA!
Ahora le cambie el nombre y avanzo pero mira el error que obtengo ...



Que puede ser ?
 

juan manuel luzuriaga

Member
Licensed User
Hay que buscar en el manifest y ver esa linea que tiene. Fijate que dice que no encuentra la versión de google play services. Lo tenes instalado?
En este link estan los pasos en castellano de como conectar firebase.
https://www.b4x.com/android/forum/threads/firebase-integrando-a-tu-app.70551/
Ahi esta tambien el que es en ingles. Fijate si tenes las últimas actualizaciones de android.
Fijate si encontras algo ahí, sino avisa.

Saludos
 

desof

Well-Known Member
Licensed User
Longtime User
Supongo que si esta actualizado mirá!
Ahora veo ese enlace ...

 

desof

Well-Known Member
Licensed User
Longtime User
No hay caso amigo! he seguido el enlace https://www.b4x.com/android/forum/threads/firebase-integrando-a-tu-app.70551/ y al parecer todo está bien .

Adjunto una nueva captura haber si clarifica cual puede ser el problema ?
Hay que configurar algo en Firebase que sea de autenticación ?

No creo que tenga nada que ver pero estoy usando la version 6.30 Demo por que la que tengo paga es anterior y he visto que no es soportada para esto.

 

desof

Well-Known Member
Licensed User
Longtime User
Me anticipo un Tu Respuesta Por Que indagando Encontré Que hacían falta instalar las referencias que no lei en ningun lado que hacían falta y por ahi los que saben más dan por sentadas cosas muy simples que a los novatos nos resultan complicadas.
Adjunto la imagen con las referencias que agregué y que se sortearon varios errores pero aun hay uno que no puedo controlar asi que por favor sigo necesitando de uds!

Este es la Captura de mi Proyecto Donde se ve claramente las referencias que utiliza y el error obtenido con el manifest tambien.

 

rscheel

Well-Known Member
Licensed User
Longtime User

Estimados sigan los distintos tutoriales de erel sobre Firebase, con eso debería bastar, ahí esta explicado claramente todos los recursos necesarios para colocar en marcha su proyecto.

https://www.b4x.com/android/forum/pages/results/?query=Firebase&author=Erel&product=b4a
 

desof

Well-Known Member
Licensed User
Longtime User
No Es Tan sencillo Seguir los tutoriales de Erel Que No Me Cabe Duda Que Son geniales Pero Los Que TENEMOS La limitación del lenguaje nos perdemos Muchos Detalles Al menos Hasta Que Aprendamos Inglés O Hasta Que los traductores evolucionen poco de la ONU.
Gracias de Todos Modos llevo Varios Días invertida en lograr v Una sencilla y conexion Estoy A Punto de claudicar y Seguir con mi querido VB6 Que Nada Tiene Que Ver con ESTO Pero lo conozco Como, a mi mismo
 
Last edited:

juan manuel luzuriaga

Member
Licensed User
Hola Desol, fijate que creo que no tiene nada que ver ahora con FireBase. Ahi te está diciendo que es un problema de la etiqueta que estás usando para la orientación, o tamaño de la pantalla. Abrí el archivo y fijate que valor tiene en esa posición o cambialo, para ver si cambia el error.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…