Italian QR Reader che funziona solo sulla pagina principale

Luciano Veneziano

Active Member
Licensed User
Longtime User
Salve a tutti.
Volevo usare una pagina per leggere il codice QR.
L'applicazione, creata dall'ottimo LucaMs funziona perfettamente se è messa come pagina principale.
Messa come pagina secondaria, (con l'aiuto di LucaMs) l'app crasha brutalmente.
Dopo una giornata di mail con LucaMs, che ringrazio caldamente della pazienza, metto sul questo thread
il problema.

Compilatore 12.0 con gli aggiornamenti consigliati da Erel (la macchina è stata formattata con win 10 all'occorrenza
e contiene solo il B4A).

Allego il file che non funziona, il log e lo screenshot della schermata d'errore (non cambia se sono sotto debug)

Ottime cose a tutti.

Today at 5:53 PM
1670172713492.png


Logger connesso a: Xiaomi Redmi 7
--------- beginning of crash
--------- beginning of system
--------- beginning of main
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
Call B4XPages.GetManager.LogEvents = True to enable logging B4XPages events.
** Activity (main) Resume **
Error occurred on line: 142 (clsScannerPage)
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.keywords.Common.CallSubDebug2(Common.java:1057)
at lm.qrtest.b4xpagesmanager._createpageifneeded(b4xpagesmanager.java:1071)
at lm.qrtest.b4xpagesmanager._showpage(b4xpagesmanager.java:428)
at lm.qrtest.b4xpages._showpage(b4xpages.java:58)
at lm.qrtest.b4xmainpage._btnopenscanner_click(b4xmainpage.java:76)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:146)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
at android.view.View.performClick(View.java:7161)
at android.view.View.performClickInternal(View.java:7138)
at android.view.View.access$3500(View.java:811)
at android.view.View$PerformClick.run(View.java:27419)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:221)
at android.app.ActivityThread.main(ActivityThread.java:7542)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at anywheresoftware.b4a.debug.Debug.CallSub4(Debug.java:336)
at anywheresoftware.b4a.debug.Debug.CallSubNew2(Debug.java:285)
... 25 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.debug.Debug.CallSub4(Debug.java:318)
... 26 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:132)
at lm.qrtest.clsscannerpage._createdetector(clsscannerpage.java:182)
at lm.qrtest.clsscannerpage._b4xpage_created(clsscannerpage.java:93)
... 28 more
Caused by: com.google.android.gms.common.GooglePlayServicesMissingManifestValueException: A required meta-data tag in your app's AndroidManifest.xml does not exist. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@Integer/google_play_services_version" />
at com.google.android.gms.common.GooglePlayServicesUtilLight.isGooglePlayServicesAvailable(com.google.android.gms:play-services-basement@@18.1.0:8)
at com.google.android.gms.common.GoogleApiAvailabilityLight.isGooglePlayServicesAvailable(com.google.android.gms:play-services-basement@@18.1.0:2)
at com.google.android.gms.dynamite.DynamiteModule.zzf(com.google.android.gms:play-services-basement@@18.1.0:6)
at com.google.android.gms.dynamite.DynamiteModule.zza(com.google.android.gms:play-services-basement@@18.1.0:8)
at com.google.android.gms.dynamite.zze.zzb(com.google.android.gms:play-services-basement@@18.1.0:1)
at com.google.android.gms.dynamite.zzk.selectModule(com.google.android.gms:play-services-basement@@18.1.0:2)
at com.google.android.gms.dynamite.DynamiteModule.load(com.google.android.gms:play-services-basement@@18.1.0:5)
at com.google.android.gms.internal.vision.zzt.zzd(com.google.android.gms:play-services-vision-common@@19.1.3:24)
at com.google.android.gms.internal.vision.zzm.<init>(com.google.android.gms:play-services-vision@@20.1.3:3)
at com.google.android.gms.vision.barcode.BarcodeDetector$Builder.build(com.google.android.gms:play-services-vision@@20.1.3:7)
... 32 more
 

Attachments

  • QRTest.zip
    16.2 KB · Views: 85

Sagenut

Expert
Licensed User
Longtime User
Forse hai esportato il progetto in maniera non corretta e non è possibile eseguirlo.
Per esportare un progetto B4XPages devi tenere premuto CTRL e cliccare su questa riga
B4X:
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=QRTest.zip
che trovi all'inizio del codice della B4XMainPage.
 

LucaMs

Expert
Licensed User
Longtime User
Forse hai esportato il progetto in maniera non corretta e non è possibile eseguirlo.
Per esportare un progetto B4XPages devi tenere premuto CTRL e cliccare su questa riga
B4X:
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=QRTest.zip
che trovi all'inizio del codice della B4XMainPage.
Vero. Se il progetto non deve includere (copiare) file dalla cartella "Shared Files", si può installare anche se esportato male; è sufficiente commentare la riga:
B4X:
#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
 

Luciano Veneziano

Active Member
Licensed User
Longtime User
Grazie a Dio il 28 febbraio 2023 faccio 45 anni di servizio e vado in pensione. Finalmente potrò andare in palestra tutti i giorni, fare programmazione (proficua), dedicarmi ai viaggi e preparare manicaretti.
 
Last edited:

Luciano Veneziano

Active Member
Licensed User
Longtime User
Buongiorno a tutti.
trovata la soluzione grazie a LucaMs.
La soluzione era già stata prospettata da Erel tempo fa.
 
Top