TMS FNC WX Camera

I am experimenting with the Camera in the WX pack, and have some questions:

  1. How do I get the "Devices" list filled out (currently on Win32, but most importantly for mobile platforms) so that I can allow the user to select camera?
  2. How do I then select the chosen camera (and is front/back two different devices)?
  3. On newer iPhones, there are three back cameras - one of which is for (extreme) closeups. How do I select/enable the use of this (I haven't tried the demo on iOS yet, as the employee with such a device is absent at the moment)
  4. When I tried the Bar Code Decoder demo on Win32, and selected EAN-13 and let it scan a bar code, my Delphi hard-terminated abruptly, pulling RAD studio down with it. I assume that's not what was supposed to happen :slight_smile:
  5. How do I control the light on the camera (turn it on/off, reading the current tate)?
  6. Is there an event that can be fired each time a frame is available (like the standard Delphi TCamera has) so I can continually scan the camera image for bar codes?

Keld R. Hansen
Admind

Hi,

1 - 2: I suggest to start with the documentation as it shows how to list and select the listed devices: TTMSFNCWXCamera - TMS FNC WX Pack
Please read it carefully so you don't accidentally skip details such as internet requirement.
Additionally, for front/back you have quick settings via the CameraType property. You should be aware that this method will pick a default back/front camera module, we have no control over what the getUserMedia API receives as default.

3: If you list the devices, you can (in theory) select any of them. We haven't tested this with an iPhone closeup camera though, but Android let us cycle between all the available camera modules.

4: Certainly not, however we cannot reproduce this. We'll need a way to try to replicate this here. What is your Delphi and Windows version? Do you have any additional details (e.g. any modified properties in the demo)?

5: Via constraints, but support may vary based on the platform. The documentation has some info on this, and specifically for the flash see here: TMSFNCWXCamera and flash light

6: The getUserMedia API doesn't provide an event for each frame. Instead, you can request a frame. This is done by calling GetSnapshot upon which the OnGetSnapshot event will trigger. The barcode decoder component requests frames automatically, if you don't shut down the camera with the Stop call (unlike the demo), it should keep scanning.

I have now managed to compile and run your demo program, and have added a button to rotate through the various cameras. I noticed one thing, however (see the attached Video (Screen Grab)): The close-up camera is not the default camera when selecting "Back" camera, so in order to take a close-up (we need to it to scan bar codes), we have to wait for several seconds before the camera detects that it needs to switch camera.

Is there a way to force your Camera component to use the close-up camera? If there isn't, would it be possible for you to add such an option/property so our customers doesn't have to wait several seconds for the auto-switch?

Hi,

We didn't implement any detection so it looks like your iOS device does that by itself. Our Android test devices do not switch cameras automatically.

Unfortunately, getUserMedia() doesn't expose any settings that would let us influence which back facing camera device is selected by default.

At this moment there aren't workarounds or tricks available to get the device you want by default. Even if we somehow enable retrieving the list of constraints for each camera device, you'd still need to implement custom logic at application level to figure out the best camera for your needs.

Alternatively you could let the users select the camera manually.

I've now (for now) moved on to Android, but when I compile your Camera demo (after adding a TTMSFNCWXBarcodeDecoder and linking it to the camera, then hooking into the OnDecoded event and having it update an added TLabel with the (if AFound) AResult, I get these errors when trying to deploy:

Deploy
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8
--Clean=".\Android64\Debug\Demo,C:\Users\keld\AppData\Local\tmssoftware\registered\TMS FNC WX Pack\Demos\FMX\Camera\Demo.@emb.tmp"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8
--put="Android64\Debug\libDemo.so,.\Android64\Debug\Demo\library\lib\arm64-v8a,1,libDemo.so"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_LauncherIcon_72x72.png,.\Android64\Debug\Demo\res\drawable-hdpi,1,ic_launcher.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8
--put="Android64\Debug\AndroidManifest.xml,.\Android64\Debug\Demo,1,AndroidManifest.xml"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_LauncherIcon_48x48.png,.\Android64\Debug\Demo\res\drawable-mdpi,1,ic_launcher.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_LauncherIcon_144x144.png,.\Android64\Debug\Demo\res\drawable-xxhdpi,1,ic_launcher.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_LauncherIcon_192x192.png,.\Android64\Debug\Demo\res\drawable-xxxhdpi,1,ic_launcher.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8
--put="Android64\Debug\colors-night-v21.xml,.\Android64\Debug\Demo\res\values-night-v21,1,colors.xml"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_NotificationIcon_48x48.png,.\Android64\Debug\Demo\res\drawable-xhdpi,1,ic_notification.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_SplashImage_640x480.png,.\Android64\Debug\Demo\res\drawable-large,1,splash_image.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\lib\android\debug\armeabi\libnative-activity.so,.\Android64\Debug\Demo\library\lib\armeabi,1,libDemo.so"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8
--put="Android64\Debug\colors.xml,.\Android64\Debug\Demo\res\values,1,colors.xml"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8
--put="Android64\Debug\splash_image_def.xml,.\Android64\Debug\Demo\res\drawable,1,splash_image_def.xml"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_NotificationIcon_36x36.png,.\Android64\Debug\Demo\res\drawable-hdpi,1,ic_notification.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_NotificationIcon_96x96.png,.\Android64\Debug\Demo\res\drawable-xxxhdpi,1,ic_notification.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\lib\android\debug\mips\libnative-activity.so,.\Android64\Debug\Demo\library\lib\mips,1,libDemo.so"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_LauncherIcon_96x96.png,.\Android64\Debug\Demo\res\drawable-xhdpi,1,ic_launcher.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\lib\android\debug\armeabi-v7a\libnative-activity.so,.\Android64\Debug\Demo\library\lib\armeabi-v7a,1,libDemo.so"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_NotificationIcon_24x24.png,.\Android64\Debug\Demo\res\drawable-mdpi,1,ic_notification.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_LauncherIcon_36x36.png,.\Android64\Debug\Demo\res\drawable-ldpi,1,ic_launcher.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_SplashImage_960x720.png,.\Android64\Debug\Demo\res\drawable-xlarge,1,splash_image.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8
--put="Android64\Debug\styles.xml,.\Android64\Debug\Demo\res\values,1,styles.xml"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_SplashImage_426x320.png,.\Android64\Debug\Demo\res\drawable-small,1,splash_image.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8
--put="Android64\Debug\strings.xml,.\Android64\Debug\Demo\res\values,1,strings.xml"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8
--put="Android64\Debug\styles-v21.xml,.\Android64\Debug\Demo\res\values-v21,1,styles.xml"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_NotificationIcon_72x72.png,.\Android64\Debug\Demo\res\drawable-xxhdpi,1,ic_notification.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --put="c:\program files
(x86)\embarcadero\studio\23.0\bin\Artwork\Android\FM_SplashImage_470x320.png,.\Android64\Debug\Demo\res\drawable-normal,1,splash_image.png"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --manifestmerge="C:\Program Files\Eclipse
Adoptium\jdk-17.0.9.9-hotspot\bin\java.exe,c:\program files
(x86)\embarcadero\studio\23.0\bin\Android\manifestmerger-31.2.1.jar,.\Android64\Debug\Demo\AndroidManifest.xml,.\Android64\Debug\AndroidManifest-merged.xml,,1"

paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --rescompile="c:\program files
(x86)\embarcadero\studio\23.0\bin\Android\aapt2-8.2.1.exe,.\Android64\Debug\ResourceList.txt,.\Android64\Debug\CompiledResources\"
paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --respackage="c:\program files
(x86)\embarcadero\studio\23.0\bin\Android\aapt2-8.2.1.exe,.\Android64\Debug\CompiledResources,.\Android64\Debug\CompiledResourcesList.txt,.\Android64\Debug\AndroidManifest-merged.xml,C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\AndroidSDK-2525-23.0.50491.5718\platforms\android-34\android.jar,.\Android64\Debug\PackagedResources.zip"

paclient command line
c:\program files (x86)\embarcadero\studio\23.0\bin\paclient.exe -u8 --dexmerge="C:\Program Files\Eclipse
Adoptium\jdk-17.0.9.9-hotspot\bin\java.exe,c:\program files
(x86)\embarcadero\studio\23.0\bin\Android\dexer-1.0.0.jar,.\Android64\Debug\Demo.classes,23,.\Android64\Debug\DexList.txt"
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\android-support-v4.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\android-support-v4.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-ads-base.17.2.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-ads-base.17.2.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-ads.17.2.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-ads.17.2.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-analytics.16.0.8.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-analytics.16.0.8.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-base.16.0.1.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-base.16.0.1.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-basement.16.2.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-basement.16.2.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-gass.17.2.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-gass.17.2.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-identity.16.0.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-identity.16.0.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-maps.16.1.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-maps.16.1.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-stats.16.0.1.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-stats.16.0.1.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-tasks.16.0.1.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-tasks.16.0.1.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-wallet.16.0.1.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-android-gms.play-services-wallet.16.0.1.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-analytics.16.4.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-analytics.16.4.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-common.16.1.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-common.16.1.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-iid-interop.16.0.1.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-iid-interop.16.0.1.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-iid.17.1.1.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-iid.17.1.1.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-messaging.17.5.0.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\com-google-firebase.firebase-messaging.17.5.0.dex.jar
[PAClient Error] Error: E7688 Error in c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\google-play-billing.dex.jar:
[PAClient Error] Error: E7688 java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\google-play-billing.dex.jar
[PAClient Error] Error: E7688 com.android.tools.r8.CompilationFailedException: Compilation failed to complete, origin: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\google-play-billing.dex.jar
[PAClient Error] Error: E7688 at Version.fakeStackEntry(Version_8.2.33.java:0)
[PAClient Error] Error: E7688 at com.android.tools.r8.T.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:5)
[PAClient Error] Error: E7688 at com.android.tools.r8.utils.S0.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:82)
[PAClient Error] Error: E7688 at com.android.tools.r8.utils.S0.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:32)
[PAClient Error] Error: E7688 at com.android.tools.r8.utils.S0.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:31)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.build(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:2)
[PAClient Error] Error: E7688 at com.embarcadero.dexer.D8CommandCreator.createMergeCommand(D8CommandCreator.kt:60)
[PAClient Error] Error: E7688 at com.embarcadero.dexer.DexerCommand$MergeCommand.run(DexerCommand.kt:41)
[PAClient Error] Error: E7688 at picocli.CommandLine.executeUserObject(CommandLine.java:2026)
[PAClient Error] Error: E7688 at picocli.CommandLine.access$1500(CommandLine.java:148)
[PAClient Error] Error: E7688 at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
[PAClient Error] Error: E7688 at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
[PAClient Error] Error: E7688 at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
[PAClient Error] Error: E7688 at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
[PAClient Error] Error: E7688 at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
[PAClient Error] Error: E7688 at picocli.CommandLine.execute(CommandLine.java:2170)
[PAClient Error] Error: E7688 at com.embarcadero.dexer.Main.main(Main.kt:10)
[PAClient Error] Error: E7688 Caused by: java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\google-play-billing.dex.jar
[PAClient Error] Error: E7688 at com.android.tools.r8.utils.p$a.c(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:23)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.e(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:4)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:15)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.addProgramFiles(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:3)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.addProgramFiles(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:1)
[PAClient Error] Error: E7688 at com.embarcadero.dexer.D8CommandCreator.createMergeCommand(D8CommandCreator.kt:53)
[PAClient Error] Error: E7688 ... 10 more
[PAClient Error] Error: E7688 Suppressed: java.lang.RuntimeException: com.android.tools.r8.utils.b: java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\google-play-billing.dex.jar
[PAClient Error] Error: E7688 at com.android.tools.r8.utils.Q2.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:29)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:3)
[PAClient Error] Error: E7688 at com.android.tools.r8.utils.S0.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:28)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.build(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:2)
[PAClient Error] Error: E7688 at com.embarcadero.dexer.D8CommandCreator.createMergeCommand(D8CommandCreator.kt:60)
[PAClient Error] Error: E7688 ... 10 more
[PAClient Error] Error: E7688 Caused by: com.android.tools.r8.utils.b: java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\google-play-billing.dex.jar
[PAClient Error] Error: E7688 at com.android.tools.r8.utils.Q2.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:21)
[PAClient Error] Error: E7688 at com.android.tools.r8.utils.Q2.error(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:1)
[PAClient Error] Error: E7688 at com.android.tools.r8.utils.p$a.c(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:24)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.e(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:4)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.a(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:15)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.addProgramFiles(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:3)
[PAClient Error] Error: E7688 at com.android.tools.r8.BaseCommand$Builder.addProgramFiles(R8_8.2.33_429c93fd24a535127db6f4e2628eb18f2f978e02f99f55740728d6b22bef16dd:1)
[PAClient Error] Error: E7688 at com.embarcadero.dexer.D8CommandCreator.createMergeCommand(D8CommandCreator.kt:53)
[PAClient Error] Error: E7688 ... 10 more
[PAClient Error] Error: E7688 Caused by: [CIRCULAR REFERENCE: java.nio.file.NoSuchFileException: c:\program files (x86)\embarcadero\studio\23.0\lib\android\Debug\google-play-billing.dex.jar]
Failed
Elapsed time: 00:00:04.8

Do I need to download additional libraries and/or modify a path setting?

The demo was made with a different Delphi version than yours, you'll need to revert he libraries back to default:
image
Then add the necessary JAR files to the project again:

I don't have a javascripthelper.jar file anywhere on my PC. Where should it come from?

This is my SDK version:
image

Normally it should be in the Android Support folder of the installation directory.

Found it. My File Search didn't find it, because AppData is a hidden directory...

Sorry about that...

Now, moving on to the BarCodeScanner. I have been unable to get it to recognize any (EAN-13) Bar Codes. First I tried dropping a BarCode Reader Component on your Camera Demo and linking it up, and then supplying an OnDecoded event to fill out a TLabel with the data. It never showed anything.

Then I tried your BarCodeDecoder Demo, and the only thing I did was to change the camera from Default to Back, and it, too, can't decode any bar code I'm scanning.

I'm using a Samsung Galaxy S20+ with Android 13 and OneUI 5.1

Hi,

We regularly get reports about reading barcodes on Android. We could narrow it down to 3 causes which you can read in the documentation:

Can you double check the demo with the settings/adaptions that are mentioned in there?

I assumed (I know - don't ASSUME) that the demo project you supplied was set up with the correct settings, but I'll check it out...