Sorry it is on windows PC when running the aistarter and emulator, the emulator doesn't load the project and then the java error come up on the web page
I believe this is a bug in the latest release (nb189), that affects the emulator.I do not see this error when using the companioi app with a real device.
I have the same error with all my extensions.
In order to reproduce it, just create a new project and add any extension. In the moment that you drop the extension to the Screen you get the error.
I try using both emulators (AppInventor and Android SDK), different companion versions, and extensions (in fact I do compile a very basic extension), but I do have the same error "Error from Companion: java.lang.RuntimeException: invalid syntax in eval form: :8:1: caught exception in inliner for # - java.lang.RuntimeException: no such class:" followed with the extension Class name
I can do any test that can help to diagnose the problem.
Thanks
Gus
If you're on Windows, the version of Android bundled in the 2.x branch of emulator products is too old to support extensions. There is a newer bundle that we are putting together based on Android 10 that will support extensions to some degree (e.g., extensions that don't need hardware support).
As a workaround, if you have Android Studio installed you can start an Android Virtual Device and install the companion there. So long as that emulator is running before you select the Emulator option from the Connect menu App Inventor will connect to it rather than its built-in emulator (aiStarter.exe still needs to be running in this configuration).
I'm on GNU/Linux machines. I work with extensions since 2017 and never have this problem. I'm using both emulators (App Inventor included on the appinventor2-setup-2.3) and all works fine until the last month ¿or the previous App Inventor version?.
In fact I do have a couple of App Inventor servers (older versions) and all works like expected.
From my observations I can tell that the Companion works fine until I drop a extension component on the project. In that moment the device screen is frozen and the mentioned error message apear on the IDE side. In that moment if the extension component is removed it's possible to send "Update Companion Screen" and the connection between the emulated device and the IDE works again.
I think that there is a bug on the new App Inventor server. I can try to build the previous version and make it a try.
Please tell me if that can help to diagnose the problem.
" While starting the companion app, all necessary assets and also the imported extensions of your project will be copied to your device. So in case the no such class error shows up, the extension code to run the extension is not available on your device. Without that code the companion app is not able to execute methods from the extension.
In case restarting the companion app does not work for you after trying several times, then as it looks like the only way for you to test you app will be after building it using the apk file."
¿Must we conclude that there is a know (and open) problem with the extensions in the current version of AI2?
No, we cannot conclude that statement or situation. I have never had these errors with companion (Genymotion emulator and real device) or compiled apps with the nb189+ releases, along with many others. It just seems to be some users (which includes you) who have this problem. This makes it more difficult to track down. Evan has explained above the possible issues with the AppInventor Emulator.
Yes, I'm using SMP Debian 5.10.28-1 (2021-04-09) x86_64 GNU/Linux.
I don´t have a real device right now. So I opened the project you share here using the same AI2 server (but using Firefox browser and the companion 2.63u running on the emulator) I have the same error: Error de Companion: java.lang.RuntimeException: invalid syntax in eval form: :22:1: caught exception in inliner for # - java.lang.RuntimeException: no such class: uk.co.metricrat.base91.Base91...
Using the Chrome browser, the error message takes longer to apear.
In both cases, is enough to remove the extension from the Screen1 in order to recover the companion connection