Android Tutorial Running B4A and B4J under Linux with wine - fully functional

I have just managed to install B4A and make it run (including B4ASdkManager) on my Xubuntu 18.04 and, since I have lost two days and one night putting things together, I thought it will be a good idea to share it with this great community :)

Will assume that we have a partition for virtual drives on wine at /virtuals

1. Install last stable version of Wine (4.0) - x86 version
2. Install winetricks for easyer management, this short tutorial will rely on that
3. Create wine prefix for B4X applications:
Run in terminal, under your user, not root
WINEPREFIX="/virtuals/b4x" WINEARCH=win32 wine wineboot
4. Start winetricks:
Run in terminal, under your user, not root
WINEPREFIX="/virtuals/b4x" winetricks
5. Check "Select the default wine prefix" and click "OK"
(obsolete, not for wine 4.0) 6. Run winecfg and make sure Windows version is set to XP
6. Run winecfg and make sure Windows version is set to Windows 7
7. Check "Install a Windows DLL or component" and click "OK"
(obsolete, not for wine 4.0) 8. Check dotnet40 and vcrun2010, then click "OK"
8. Check dotnet452 and vcrun2010, then click "OK"
wait for install
9. Check "Run unistaller" and clikc "OK"
(obsolete, not for wine 4.0) uninstall all dotnet 4 apps and instances
uninstall all dotnet 452 apps and instances
10. Download dotnet 4.5.2 redistributable (offline version)
10'. Run winecfg and make sure Windows version is set to Windows 7 (because wine built-in dotnet installer switches this on Windows 2003)
11. Check "Run unistaller" and click "Install" button in that window, select new downloaded dotnet 4.5.2 installer
wait for the framework to install
12. Close all and restart the prefix
Run in terminal, under your user, not root,
WINEPREFIX="/virtuals/b4x" wineboot --restart
13. Also by using "Install" button in the window that appears when you select "Run uninstaller", install B4J
If you select "Launch B4J" the IDE should start.
14. Close the IDE
15. Same "Install" button - install JDK 8
16. Same procedure, install B4A
17. With winetricks, select "Change settings" and make sure you check:
glsl=enabled
ddr=gdi
videomemorysize=512 (don't know if really necessary)
orm=fbo
18. Close all
19. Go to your prefix folder, using a Linux terminal
cd /virtuals/b4x/drive_c/Program Files/Anywhere Software/Basic4Android and copy B4ASdkManager.jar to the directory where your java.exe was installed
20. Download android sdk-tools and unpack it manually in your prefix/drive_c/android-sdk directory, so you will have a "tools" directory under your prefix/drive_c/android-sdk
21. Go to the folder where your java.exe is and where you have copied B4ASdkManager
22. Run B4ASdkManager in a Linux terminal, with the command:
WINEPREFIX="/virtuals/b4x" wine ./java.exe -Xmx1G -Dprism.order=j2d -jar ./B4ASdKManager.jar
23. From the suggested installation things (already selected), deselect all lines referring to Intel x86 platforms and, also, all lines referring to Android emulator. Make sure you have at least 1G of free memory to allocate for java heap.
Some icons on some buttons are bigger than buttons, but, B4ASdkManager is still usable. On some points during the installation, it seems stalling, but, don't close it until it finishes (until the GUI becomes fully responsive again).
24. Close B4ASdkManager
25. Download latest android-tools for Linux and install them manually (I have simply copied adb to /usr/bin)
26. Check if adb is working
connect your android phone to the computer
Run in Linux terminal
adb devices
It must respond with something like:

List of devices attached
041c68157d25 device

if necessary, issue adb kill-server and adb -start-server, then, again, adb devices
27. Using a Linux terminal, go to
/virtuals/b4x/drive_c/Program Files/Anywhere Software/Basic4android
execute in terminal
WINEPREFIX="/virtuals/b4x" wine ./B4A.exe
Set the paths and configure your IDE upon your taste.
On compile & run, if you correctly installed adb, B4A will automatically detect it and upload your application.
If you have checked "Create icon on desktop" at installation stage, you will have a launcher on the desktop for B4J and B4A. At least on my Xubuntu 18.04 it works :)
Also, designer is fully functional, for both B4A and B4J.
Have fun with one of the greatest product, which is B4X suite :)

EDIT - tested and working with B4J 7.0
EDIT - tested and working with B4A 9.0
 
Last edited:

FranciscoGoncalves

New Member
Licensed User
B4A V 8.80 as registered version now runs under my Linux! B4A Bridge runs too!

B4J V 7.00 runs too!

Great!

My configuration: Ubuntu 18.04 Mate 32 bit, wine 4.0, wine configured as Windows 7.
Hi,

I am configuring B4A on a Ubuntu 20.04 and i got everything working excetion for the Bridge AVD, that reports error --->
_wenviron is not set, did you link with -municode?


Can you help solving this??

Thanks / Kind Regards,

Francisco
francis.goncalves@gmail.com
 

hibrid0

Active Member
Licensed User
Longtime User
I get this error on B4J version 10 and same on B4A.


Captura desde 2024-05-24 10-30-40.png
 

aeric

Expert
Licensed User
Longtime User
compile if I comment the line CustomBuildAction
I think it is because inside Wine, System32\Robocopy.exe is missing from WinDir. Maybe can try to find Robocopy.exe from Windows machine and copy it to the Wine Windir\System32 directory. Otherwise, just comment the #CustomBuildAction.

This applies to B4XPages project template.
 

hibrid0

Active Member
Licensed User
Longtime User
I think it is because inside Wine, System32\Robocopy.exe is missing from WinDir. Maybe can try to find Robocopy.exe from Windows machine and copy it to the Wine Windir\System32 directory. Otherwise, just comment the #CustomBuildAction.

This applies to B4XPages project template.
Yes the problem is about robocopy. I try copy robocopy from my windows installation but the problem continue, I apply the easy way and was comment that line.

Mihai, The bridge work fine
 

aeric

Expert
Licensed User
Longtime User
Yes the problem is about robocopy. I try copy robocopy from my windows installation but the problem continue, I apply the easy way and was comment that line.

Mihai, The bridge work fine
I see.

Robocopy isn't available for Linux/Wine, so if the CustomBuildAction with Robocopy is present in your project, you'll have to turn it into a comment or replace it with something else.
 

walt61

Well-Known Member
Licensed User
Longtime User
Just in case anyone would wind up here: as xcopy.exe does exist in the Wine environment, these lines could be used in a B4XPages project (update the xcopy options "/..." with the ones you prefer):
B4X:
#CustomBuildAction: folders ready, %WINDIR%\System32\xcopy.exe,"..\..\Shared Files" "..\Files" /C /E /F /H /K /R /Y
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\xcopy.exe&args=..\..\Shared+Files&args=..\Files&args=/C&args=/E&args=/F&args=/H&args=/K&args=/R&args=/Y&FilesSync=True
 
Top