Path doesn't exist. lazarus / 43-Android ---------------------------------------------------------------------- BlueIcaro · 2025-10-19 08:52 Hello, I installed lazarus for android using Fpcupdeluxe. After following the wiki, I got this error when I try to build and run apk (ctrl+F1). See Image attached. Also I attach the a image with android module wizard. Thanks for your help in advance /BlueIcaro ---------------------------------------------------------------------- neuro · 2025-10-27 07:27 Wiki page about installation of FPC and Lazarus provides incomplete instructions about installation of LAMW (Lazarus Android Module Wizard): Quotehttps://wiki.freepascal.org/fpcupdeluxe Installation of FPC and Lazarus You need to do the following steps. Step #1. At first you need to install “Android Studio”. Step #2. Open “Android Studio” and manually install needed versions of Android SDK and Android NDK. Today you need SDK API level 35 and NDK 21.4.7075529. Step #3. Download and install manually “jdk-21”. Step #3. Run setup of fpcupdeluxe_v2.4.0f and press button “LAMW” which installs stable versions of FPC and Lazarus and LAMW. Step #4. By default fpcupdeluxe almost always installs wrong version of gradle, which does not work and fails to compile Android project. Go the page https://services.gradle.org/distributions/ and download “gradle-8.14.3”. Go to the directory C:\fpcupdeluxe\ccr\lamw-gradle und unzip “gradle-8.14.3” into this directory. Step #5. Open Lazarus and go to menu Tools -> [LAMW] Android Module Wizard -> Path settings [Jdk, Sdk, Ndk, …] Set the following paths: QuoteC:\Program Files\Java\jdk-21 C:\fpcupdeluxe\ccr\lamw-ant\apache-ant-1.10.12\bin C:\fpcupdeluxe\ccr\lamw-gradle\gradle-8.14.3 C:\Users\username\AppData\Local\Android\Sdk\ndk\21.4.7075529 C:\Users\username\AppData\Local\Android\Sdk Step #6. Go to the directory C:\fpcupdeluxe\fpc\bin\x86_64-win64 Open file „fp.cfg“. Change its contents to the following Quote# # Config file generated by fpcmkcfg on 10/2/2025 - 3:15:12 # Example fpc.cfg for Free Pascal Compiler # # ---------------------- # Defines (preprocessor) # ---------------------- # # nested #IFNDEF, #IFDEF, #ENDIF, #ELSE, #DEFINE, #UNDEF are allowed # # -d is the same as #DEFINE # -u is the same as #UNDEF # # # Some examples (for switches see below, and the -? helppages) # # Try compiling with the -dRELEASE or -dDEBUG on the commandline # # For a release compile with optimizes and strip debuginfo #IFDEF RELEASE   -O2   -Xs   #WRITE Compiling Release Version #ENDIF # For a debug version compile with debuginfo and all codegeneration checks on #IFDEF DEBUG   -gl   -Crtoi   #WRITE Compiling Debug Version #ELSE   # Strip debuginfo from the executable if not in debug mode   -Xs #ENDIF # assembling #ifdef darwin # use pipes instead of temporary files for assembling #IFNDEF FPC_CROSSCOMPILING -ap #ENDIF #endif # ---------------- # Parsing switches # ---------------- # Pascal language mode #      -Mfpc      free pascal dialect (default) #      -Mobjfpc   switch some Delphi 2 extensions on #      -Mdelphi   tries to be Delphi compatible #      -Mtp       tries to be TP/BP 7.0 compatible #      -Mgpc      tries to be gpc compatible #      -Mmacpas   tries to be compatible to the macintosh pascal dialects # # Turn on Object Pascal extensions by default #-Mobjfpc # Assembler reader mode #      -Rdefault  use default assembler #      -Ratt      read AT&T style assembler #      -Rintel    read Intel style assembler # # All assembler blocks are AT&T styled by default #-Ratt # Semantic checking #      -S2        same as -Mobjfpc #      -Sc        supports operators like C (*=,+=,/= and -=) #      -Sa        include assertion code. #      -Sd        same as -Mdelphi #      -Se     error options. is a combination of the following: #          : compiler stops after errors (default is 1) #         w   : compiler stops also after warnings #         n   : compiler stops also after notes #         h   : compiler stops also after hints #      -Sg        allow LABEL and GOTO #      -Sh        Use ansistrings #      -Si        support C++ styled INLINE #      -Sk        load fpcylix unit #      -SI     set interface style to #         -SIcom    COM compatible interface (default) #         -SIcorba  CORBA compatible interface #      -Sm        support macros like C (global) #      -So        same as -Mtp #      -Sp        same as -Mgpc #      -Ss        constructor name must be init (destructor must be done) #      -Sx        enable exception keywords (default in Delphi/ObjFPC modes) # # Allow goto, inline, C-operators, C-vars -Sgic # --------------- # Code generation # --------------- # Uncomment the next line if you always want static/dynamic units by default # (can be overruled with -CD, -CS at the commandline) #-CS #-CD # Set the default heapsize to 8Mb #-Ch8000000 # Set default codegeneration checks (iocheck, overflow, range, stack) #-Ci #-Co #-Cr #-Ct # Optimizer switches # -Os        generate smaller code # -Oa=N      set alignment to N # -O1        level 1 optimizations (quick optimizations, debuggable) # -O2        level 2 optimizations (-O1 + optimizations which make debugging more difficult) # -O3        level 3 optimizations (-O2 + optimizations which also may make the program slower rather than faster) # -Oo     switch on optimalization x. See fpc -i for possible values # -OoNO   switch off optimalization x. See fpc -i for possible values # -Op     set target cpu for optimizing, see fpc -i for possible values #ifdef darwin #ifdef cpui386 -Cppentiumm -Oppentiumm #endif #endif # ----------------------- # Set Filenames and Paths # ----------------------- # Both slashes and backslashes are allowed in paths # path to the messagefile, not necessary anymore but can be used to override # the default language #-FrC:\fpcupdeluxe\fpc/msg/errore.msg #-FrC:\fpcupdeluxe\fpc/msg/errorn.msg #-FrC:\fpcupdeluxe\fpc/msg/errores.msg #-FrC:\fpcupdeluxe\fpc/msg/errord.msg #-FrC:\fpcupdeluxe\fpc/msg/errorr.msg # search path for unicode binary files (FPC 2.x does not know this switch) #ifndef VER2 -FMC:\fpcupdeluxe\fpc\share/unicode/ #endif # Search for $fpctarget/$fpcsubarch-$fpcmemorymodel/ subdirectory first # for i8086 CPU #ifdef cpui8086 -FuC:\fpcupdeluxe\fpc/units/$fpctarget/$fpcsubarch-$fpcmemorymodel -FuC:\fpcupdeluxe\fpc/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/* -FuC:\fpcupdeluxe\fpc/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/rtl #endif # searchpath for units and other system dependent things -FuC:\fpcupdeluxe\fpc/units/$fpctarget -FuC:\fpcupdeluxe\fpc/units/$fpctarget/* -FuC:\fpcupdeluxe\fpc/units/$fpctarget/rtl #IFDEF FPCAPACHE_1_3 -FuC:\fpcupdeluxe\fpc/units/$fpctarget/httpd13/ #ELSE #IFDEF FPCAPACHE_2_0 -FuC:\fpcupdeluxe\fpc/units/$fpctarget/httpd20 #ELSE -FuC:\fpcupdeluxe\fpc/units/$fpctarget/httpd22 #ENDIF #ENDIF # searchpath for fppkg user-specific packages -FuC:\fpcupdeluxe\packages.fppkg\units\$fpctarget/* # searchpath for tools -FDC:\fpcupdeluxe\fpc/bin/$FPCTARGET # path to the gcclib # searchpath for libraries #-FlC:\fpcupdeluxe\fpc/lib #-Fl/lib;/usr/lib -FlC:\fpcupdeluxe\fpc/lib/$FPCTARGET #IFNDEF CPUI386 #IFNDEF CPUAMD64 #DEFINE NEEDCROSSBINUTILS #ENDIF #ENDIF #IFNDEF Win64 #DEFINE NEEDCROSSBINUTILS #ENDIF # never need cross-prefix when targeting the JVM # (no native compiler, always cross-compiling) #ifdef cpujvm #undef NEEDCROSSBINUTILS #endif # for android cross-prefix is set by compiler #ifdef android #undef NEEDCROSSBINUTILS #endif # never need cross-prefix when targeting the i8086 # (no native compiler, always cross-compiling) #ifdef cpui8086 #undef NEEDCROSSBINUTILS #endif # never need cross-prefix when targeting the i8086 # (no native compiler, always cross-compiling) #ifdef cpujvm #undef NEEDCROSSBINUTILS #endif # binutils prefix for cross compiling #IFDEF FPC_CROSSCOMPILING #IFDEF NEEDCROSSBINUTILS   -XP$FPCTARGET- #ENDIF #ENDIF # ------------- # Linking # ------------- # generate always debugging information for GDB (slows down the compiling # process) #      -gc        generate checks for pointers #      -gd        use dbx #      -gg        use gsym #      -gh        use heap trace unit (for memory leak debugging) #      -gl        use line info unit to show more info for backtraces #      -gv        generates programs tracable with valgrind #      -gw        generate dwarf debugging info # # Enable debuginfo and use the line info unit by default #-gl # always pass an option to the linker #-k-s # Always use smartlinking on i8086, because the system unit exceeds the 64kb # code limit #ifdef cpui8086 -CX -XX #endif # ------------- # Miscellaneous # ------------- # Write always a nice FPC logo -l # Verbosity #      e : Show errors (default)       d : Show debug info #      w : Show warnings               u : Show unit info #      n : Show notes                  t : Show tried/used files #      h : Show hints                  s : Show time stamps #      i : Show general info           q : Show message numbers #      l : Show linenumbers            c : Show conditionals #      a : Show everything             0 : Show nothing (except errors) #      b : Write file names messages   r : Rhide/GCC compatibility mode #          with full path              x : Executable info (Win32 only) #      v : write fpcdebug.txt with     p : Write tree.log with parse tree #          lots of debugging info # # Display Info, Warnings and Notes -viwn # If you don't want so much verbosity use #-vw # begin fpcup do not remove : base settings # Adding binary tools paths to # plain bin dir and architecture bin dir so # fpc 3.1+ fpcres etc can be found. -FDC:\fpcupdeluxe\fpc\bin\x86_64-win64;C:\fpcupdeluxe\fpc #IFNDEF FPC_CROSSCOMPILING #ENDIF # end fpcup do not remove # begin fpcup do not remove aarch64-android # Inserted by up v2.4.0f on 10/2/2025 3:25:34 AM # Cross compile settings dependent on both target OS and target CPU #IFDEF FPC_CROSSCOMPILING #IFDEF ANDROID #IFDEF CPUAARCH64 -FDC:\fpcupdeluxe\cross\bin\all-android\bin -XPaarch64-linux-android- -Xd -FlC:\Users\username\AppData\Local\Android\Sdk\ndk\21.4.7075529\toolch ains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\aarch64-linux- android\21 -k-z common-page-size=16384 -k-z max-page-size=16384 #ENDIF CPUAARCH64 #ENDIF ANDROID #ENDIF FPC_CROSSCOMPILING # end fpcup do not remove # begin fpcup do not remove arm-android # Inserted by up v2.4.0f on 10/2/2025 3:32:13 AM # Cross compile settings dependent on both target OS and target CPU #IFDEF FPC_CROSSCOMPILING #IFDEF ANDROID #IFDEF CPUARM -CfVFPV3 -OoFASTMATH -FDC:\fpcupdeluxe\cross\bin\all-android\bin -XParm-linux-androideabi- -Xd -FlC:\Users\username\AppData\Local\Android\Sdk\ndk\21.4.7075529\toolch ains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\arm-linux- androideabi\21 -k-z common-page-size=16384 -k-z max-page-size=16384 #ENDIF CPUARM #ENDIF ANDROID #ENDIF FPC_CROSSCOMPILING # end fpcup do not remove # begin fpcup do not remove i386-android # Inserted by up v2.4.0f on 10/2/2025 3:34:49 AM # Cross compile settings dependent on both target OS and target CPU #IFDEF FPC_CROSSCOMPILING #IFDEF ANDROID #IFDEF CPUI386 -CfSSSE3 -FDC:\fpcupdeluxe\cross\bin\all-android\bin -XPi686-linux-android- -Xd -FlC:\Users\username\AppData\Local\Android\Sdk\ndk\21.4.7075529\toolch ains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\i686-linux- android\21 -k-z common-page-size=16384 -k-z max-page-size=16384 #ENDIF CPUI386 #ENDIF ANDROID #ENDIF FPC_CROSSCOMPILING # end fpcup do not remove # begin fpcup do not remove x86_64-android # Inserted by up v2.4.0f on 10/2/2025 3:37:37 AM # Cross compile settings dependent on both target OS and target CPU #IFDEF FPC_CROSSCOMPILING #IFDEF ANDROID #IFDEF CPUX86_64 -CfSSE42 -FDC:\fpcupdeluxe\cross\bin\all-android\bin -XPx86_64-linux-android- -Xd -FlC:\Users\username\AppData\Local\Android\Sdk\ndk\21.4.7075529\toolch ains\llvm\prebuilt\windows-x86_64\sysroot\usr\lib\x86_64-linux- android\21 -k-z common-page-size=16384 -k-z max-page-size=16384 #ENDIF CPUX86_64 #ENDIF ANDROID #ENDIF FPC_CROSSCOMPILING # end fpcup do not remove Step #7. Additional further steps needed are described in post: https://forum.lazarus.freepascal.org/index.php/topic,71336.msg568454.h tml#msg568454 Now you will be able to compile and run Android project. ---------------------------------------------------------------------- BlueIcaro · 2025-10-28 08:34 Thanks you for the long answer. I'll try it /BlueIcaro