Updated: my tutorial about Lazarus and Android V4 lazarus / 43-Android ---------------------------------------------------------------------- DelphiFreak · 2013-09-10 22:34 Hi, I have updated my tutorial and laztoapk to version 0.9.0.24 Files and sources are available at sourceforge.net. http://sourceforge.net/projects/laztoapk/files/?source=navbar Sam ---------------------------------------------------------------------- jmpessoa · 2013-09-10 23:03 Very good and useful work! Thank you! ---------------------------------------------------------------------- exdatis · 2013-09-11 05:58 Thank you very much! ---------------------------------------------------------------------- tfk · 2013-09-11 07:36 Nice one! Thanks! TFK ---------------------------------------------------------------------- picstart · 2013-09-11 08:06 From the first sentence "After it took me xx weeks to get a working Android application with Lazarus, it is time to write a little tutorial". Those who had the time and the perseverance to make this work have shed light on the difficulty involved. The tablet  and cell phone app is the future. The desk top PC will eventually go the way of the typewriter that was replaced by word processing and laser printing. Lazarus to have a future  needs to be in this tablet environment. Many myself included just gave up on Lazarus for tablet apps. Delphi and later Lazarus were designed to be convenient for generating desktop apps. Ease of use was a priority. Some coders are dismissive of ease of use needs and often take pride in their ability to overcome obtuse coding situations. This tutorial might prevent more people from assuming Lazarus as DOA  for tablet apps. Good work. ---------------------------------------------------------------------- BigChimp · 2013-09-11 10:18 Given the many positive reaction, it may be a good idea to put up the tutorial on the wiki so it can more easily be found, updated etc. Thanks, BigChimp ---------------------------------------------------------------------- joseywales72 · 2013-09-11 10:42 Very nice. Thank you. Btw, it seems that nobody knows the answers you had asked at the bottom of the tutorial. I'll try to follow your steps on Linux. If I succeed, I'll let you know. Anil Edit. The link for laztoapk seems broken. ---------------------------------------------------------------------- Mr_X · 2013-09-11 13:17 Uauu! you r the KING!! It is working!!! You stop my few weeks suffering  p.s.: i made apk with enclosed .bat files, 'cause link for laztoapk is broken ---------------------------------------------------------------------- zariq · 2013-09-11 15:42 I hope it encourages more people to try it. Just a small note about java, it doesn't need to be installed in any particular location. api14 and over doesn't work, so could just install api 8 and see how it goes. Arm system image needed for emulator on api 14 and above. ---------------------------------------------------------------------- DelphiFreak · 2013-09-11 16:44 Hi, it looks like dropbox has currently a problem. https://dl.dropboxusercontent.com/u/3753548/laztoapk_source_and_exe_al pha_0_12.7z I would like to extend laztoapk also for linux. But my skills for the script-files on linux are not good enough. The project is at sourceforge: http://sourceforge.net/projects/laztoapk/ Patches are welcome.  Sam ---------------------------------------------------------------------- laguna · 2013-09-12 16:32 thanks, thanks, thanks. Please, post sampler to use SQLITE. Thanks. very good. ---------------------------------------------------------------------- jmpessoa · 2013-09-12 21:48 From TrueTom Laz4Android Package (laz4android1.1-41139 - FPC 2.7.1) (just win32).... https://skydrive.live.com/?cid=89ae6b50650182c6&id=89AE6B50650182C6%21 149 There is a SQLIte use example: C:\laz4android\examples\androidlcl Greetings! ---------------------------------------------------------------------- laguna · 2013-09-13 07:52 Please, this error E:\Android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi- ld.exe: cannot find crtbegin_so.o Thanks. ---------------------------------------------------------------------- jmpessoa · 2013-09-13 11:02 Hi! 1: You need NDK 7 ... 2. Configure: Project -> Project Options -> Compiler Options -> Paths -> Libraries(-Fl) on my system (just example...): ..\..\..\adt32\ndk7\platforms\android-8\arch-arm\usr\lib; ..\..\..\adt32\ndk7\toolchains\arm-linux- androideabi-4.4.3\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.4.3 Greetings! ---------------------------------------------------------------------- laguna · 2013-09-13 13:40 okay, I understood. Replace with this: ..\ndk\platforms\android-8\arch-arm\usr\lib ..\ndk\toolchains\x86-4.4.3\prebuilt\windows\lib\gcc\i686-android- linux\4.4.3 work very good. how you can implement Google-AdMob Thanks. ---------------------------------------------------------------------- tintinux · 2013-09-17 08:06 Quoteit looks like dropbox has currently a problem. https://dl.dropboxusercontent.com/u/3753548/laztoapk_source_and_exe_al pha_0_12.7z Yes ! QuoteThe project is at sourceforge: http://sourceforge.net/projects/laztoapk/ Patches are welcome.  There is no file there... Where can we find it ? Regards ---------------------------------------------------------------------- wcleyton · 2013-09-17 11:40 Hi, Look for the tab -> Code ---------------------------------------------------------------------- tintinux · 2013-09-17 14:50 Unfortunately, I can't use git:// even through http, I can only download files. I will try to get the file at home and transfer it as I must for Lazarus trunk. ---------------------------------------------------------------------- DelphiFreak · 2013-09-17 16:39 Go here and klickon "Download Snapshot". http://sourceforge.net/p/laztoapk/svn/HEAD/tree/ Then open the project in Lazasrus and compile it. Fixes are welcome. ---------------------------------------------------------------------- fredycc · 2013-09-17 17:13 Amazing DelphiFreak Thanks.....  regards ---------------------------------------------------------------------- ThreeCat · 2013-09-20 19:47 how to cure it? http://www.imageup.ru/img138/1496706/1.jpg ---------------------------------------------------------------------- ThreeCat · 2013-09-20 20:19 ErrorLog ---------------------------------------------------------------------- DelphiFreak · 2013-09-21 05:09 I guess you took the wrong version. I see you took "API-18" in laztoapk while my tutorial says you should take "API 14". in my case the entries in the batch file look then like this: REM Adjust these paths to yours SET PATH=E:\android\sdk\tools;E:\android\sdk\platform- tools\;E:\android\sdk\build- tools\18.0.1\;C:\Programme\Java\jdk1.6.0_45\bin SET APP_NAME=project1 SET ANDROID_HOME=E:\android\sdk SET APK_SDK_PLATFORM=E:\android\sdk\platforms\android-14 SET APK_PROJECT_PATH=E:\android\projects\project1\android ---------------------------------------------------------------------- ThreeCat · 2013-09-21 14:17 with 14 API same problem, yesterday I found the article... but it's how I understood not finalized If you follow this instructions: http://www.pilotlogic.com/sitejoom/index.php/93-wiki/codetyphon- tutorials/222-cross-build-for-android At the output we get "Project1" - file, but he is not APK... what you have to do to compile it in APK??? ---------------------------------------------------------------------- michasbaer · 2013-09-21 15:03 Hi to all, all has worked fine, only at the end when running laztoapk after definition of the 4 folders/files  when ApkManager ver. ALPHA 012 pops up, the Platform-Combobox remains empty, which file must be updated or what i have forgotten. Thanks Fritz ---------------------------------------------------------------------- DelphiFreak · 2013-09-21 17:22 Hello Fritz, download the sources of laztoapk from http://sourceforge.net/code- snapshots/svn/l/la/laztoapk/svn/laztoapk-svn-32-trunk.zip then open the project in lazarus and then DEBUG it and send me a patch. Thank you. ---------------------------------------------------------------------- ThreeCat · 2013-09-21 22:24 Only API 8 comes up to 4 points, but when compiling at the end of the flies error, and API 14 - 18 to paragraph 3 not even reach ( Here is a screen and log Maybe I don't understand something? ---------------------------------------------------------------------- ThreeCat · 2013-09-21 22:31 here's another screenshots ---------------------------------------------------------------------- ThreeCat · 2013-09-21 22:34 here's the source http://yadi.sk/d/Nbn0SOe59fWBL ---------------------------------------------------------------------- DelphiFreak · 2013-09-22 05:25 From your batch file I see that you try to use typhonbuild.exe. In my first versions I also tried this, but with typhonbuild.exe (4.41) it does not work. You need to follow exactly the instructions in my tutorial (take laz4android), otherwise you will not get that stuff running. EDIT: It tried now the fresh CodeTyphon 4.50. You can create your app with typhonbuild.exe, but the produced application will not work. The filesize of the generated .so file is around 700kByte. If you generate the .so file with lazbuild.exe from laz4android, then the .so file is around 1400kByte and it works. ---------------------------------------------------------------------- engkin · 2013-09-22 05:56 Thank you Sam. Regarding the questions at the end of your tutorial here is my guess for the first and second questions. 1. Why do we need JDK installed? I believe Javac.exe is being used to compile at least one Java file, and jarsigner.exe is being used to sign the package, both are included in the JDK. The main project file of an Android application must contain at least one class that derives from android.app.Activity or one of its subclasses. This file is a Java file. In our case this file is located in the template folder and is named LCLActivity.java TemplateProject\android\src\com\pascal\lcltest\LCLActivity.java To compile this Java file and produce its javaclass file we need Java Development Kit (JDK). In addition to that, only signed Android packages (.apk) can be deployed on Android devices/emulators. To sign a package we need jarsigner.exe. 2. Why does it only work with JDK 1.6 but not with JDK 1.7? I believe Android-SDK\platforms\android-xx\android.jar was generated using JDK 1.6 and it seems that Java class files (byte codes) are not compatible with previous versions. Class library files (like SQLite*) are compiled using that version of JDK and packed in android.jar. While reading build_debug_apk.bat, for instance, I saw a line like this: call javac -verbose -encoding UTF8 -classpath %APK_SDK_PLATFORM%\android.jar -d %APK_PROJECT_PATH%\bin\classes %APK_PROJECT_PATH%\src\com\pascal\test\LCLActivity.java which clearly depends on class files from android.jar to compile LCLActivity.java, so it has to use the same version. Thank you again. This is my first post. Correction are welcome. ---------------------------------------------------------------------- DelphiFreak · 2013-09-22 07:27 Hello engkin, thank you very much for your explanations. I am interested in reducing the number of tools needed to build an android app. My first thought was: Would it be possible to replace jarsigner.exe with a fresh lazarus application that does the same. ( so we would not need to install this java-stuff ). But as you mentioned, we need this java compiler anyway to create this activity-stuff. So I look's like it is not possible to get rid of this dependency. ---------------------------------------------------------------------- Leledumbo · 2013-09-22 08:08 QuoteSo I look's like it is not possible to get rid of this dependency.It's possible, the source code is open. The question is only: who wants to port it? ---------------------------------------------------------------------- BigChimp · 2013-09-22 08:13 Quote from: DelphiFreak on September 22, 2013, 09:27:27 amBut as you mentioned, we need this java compiler anyway to create this activity- stuff. No experience with android, but perhaps the emitted activity code is fairly static and you might be able to get away with inserting a pre- generated (by the JDK) binary blob... perhaps you'll need to patch it with some file names etc. Once again, this is just a wild guess; people like Leledumbo undoubtedly will have a more informed opinion about this... ---------------------------------------------------------------------- Leledumbo · 2013-09-22 08:32 QuoteNo experience with android, but perhaps the emitted activity code is fairly static and you might be able to get away with inserting a pre-generated (by the JDK) binary blob... perhaps you'll need to patch it with some file names etc.This is theoritically possible, but I'm not gonna be the one who wants to do it. The current approach is clean enough despite the need to install a bunch of tools. ---------------------------------------------------------------------- ThreeCat · 2013-09-22 11:17 used laz4android, but all the same as always forks ---------------------------------------------------------------------- truetom · 2013-09-23 02:03 Hello ThreeCat! In your log2.txt ,I find this: Unable to access jarfile C:\android\adt-bundle- windows-x86-20130729\sdk\build-to ols\18.0.1\lib\dx.jar please check the dx.jar file which isn't exist. ---------------------------------------------------------------------- DelphiFreak · 2013-09-23 05:11 Hello Treecat, I did not write in the tutorial you should download the adt-bundle. (adt-bundle-windows) You see now why it took me xx weeks to get all this stuff running and why I wrote the tutorial. ---------------------------------------------------------------------- ThreeCat · 2013-09-23 16:35 Installed the old sdk and ndk, it works, thank you very much for the explanation! Only now the question arises: That create your project has to do item 1, then open it through lazarus delete all and put your, compile, and only then move on to the second point. ---------------------------------------------------------------------- DelphiFreak · 2013-09-23 17:14 Hi, great to here you got it working.  About your question: Yes, there is plenty to improve. That's why the version is called "alpha". Here some ideas: A) the workflow need's to be improved. ( for existing projects ) B) integration into lazarus tools menu would be great. (called e.g. build and deploy) C) make it working with linux So patches are very welcome... ---------------------------------------------------------------------- tmrx · 2013-09-30 11:39 Tested and approuved with Android NDK9 too ---------------------------------------------------------------------- DelphiFreak · 2013-10-01 00:38 Hi, could you explain how you did that? I just tried with ndk9 and get: Code: [Select]Linking E:\android\projects\project2\android\libs\armeabi\liblclapp.so E:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi- ld.exe: E: \android\ndk\platforms\android-14\arch-arm\usr\lib\crtbegin_so.o: Unknown mandat ory EABI object attribute 44 E:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi- ld.exe: fa iled to merge target specific data of file E:\android\ndk\platforms\android-14\a rch-arm\usr\lib\crtbegin_so.o E:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi- ld.exe: E: \android\ndk\platforms\android-14\arch-arm\usr\lib\crtend_so.o: Unknown mandator y EABI object attribute 44 E:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi- ld.exe: fa iled to merge target specific data of file E:\android\ndk\platforms\android-14\a rch-arm\usr\lib\crtend_so.o Project2android.lpr(35,36) Error: Error while linking Project2android.lpr(35,36) Fatal: There were 1 errors compiling module, stopping ERROR: failed compiling of project E:\android\projects\project2\project2android. lpi ---------------------------------------------------------------------- engkin · 2013-10-01 03:58 Sam, I tend to believe that you did not copy NDK9 arm-linux- androideabi-*.exe files to your E:\android\laz4android\fpc\2.7.1\bin\i386-win32\ folder. Am I right? ---------------------------------------------------------------------- DelphiFreak · 2013-10-01 17:05 Yes, you are right. After I copied the files, the problem with "Unknown mandat ory EABI object attribute 44" is gone. But I still does not compile. Here are the problems: E:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi- ld.bfd.exe : BFD (GNU Binutils) 2.23.2 assertion fail /s/ndk- toolchain/src/build/../binutil s/binutils-2.23/bfd/elf32-arm.c:12336 E:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi- ld.bfd.exe : BFD (GNU Binutils) 2.23.2 assertion fail /s/ndk- toolchain/src/build/../binutil s/binutils-2.23/bfd/elf32-arm.c:12336 Project2android.lpr(35,36) Error: Error while linking Project2android.lpr(35,36) Fatal: There were 1 errors compiling module, stopping ERROR: failed compiling of project E:\android\projects\project2\project2android. lpi ---------------------------------------------------------------------- engkin · 2013-10-02 23:30 Hi Sam, since your problem is with the linker I guess it sees object files that were generated with different compilers. So you have mixed object files. The linker sees two sets of files: 1- The platform object files like:    android-ndk-r9\platforms\android-14\arch-arm\usr\lib\*.o    ( Last time your problem was here ) 2- Lazarus/FPC object files like:    laz4android\units\arm-android\*.o maybe    ( Right now your problem is here ) The first set comes with the NDK so it is already compiled with its compiler. While the second set is not and you need to reproduce these object files with the compiler that comes with the NDK you intend to use. I think you can do that with something like make clean all install OS_TARGET=android CPU_TARGET=arm INSTALL_PREFIX=E:\android\laz4android\fpc\ndk-9 Check your 'build.bat' and adjust it accordingly. Hope that helps. ---------------------------------------------------------------------- DelphiFreak · 2013-10-03 22:24 Thank you, now I got it also working with NDK9. REM copy files from NDK-folder into laz4android copy .\ndk\toolchains\arm-linux- androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-*.exe .\laz4android\fpc\2.7.1\bin\i386-win32\ REM re-build .\laz4android\build.bat pause I will try to add this part to laztoapk. Let's say to build an additional batch-file e.g. step 0. prepare.bat Next question: How could I tell the build-script that the customdrawn-package shall be installed? And now... I am looking for someone to get it working with JDK 1.7 instead of 1.6.x. Thank you. ---------------------------------------------------------------------- tintinux · 2013-10-04 13:47 Hi, I tried, but when I run laz4android\build.bat after having modified the path, I get : Code: [Select]C:\Users\Me>SET FPC_BIN_PATH="C:\Users\Me\Lazarus\Android\laz4android" C:\Users\Me>REM Create fpc.cfg C:\Users\Me>"C:\Users\Me\Lazarus\Android\laz4android"\fpc\2.7.1\bin\i3 86-win32\fpcmkcfg.exe -d basepath="C:\Users\Me\Lazarus\Android\laz4android"\fpc\2.7.1 -o "C:\Us ers\Me\Lazarus\Android\laz4android"\fpc\2.7.1\bin\i386-win32\fpc.cfg Saved old "fpc.cfg" to "fpc.bak" C:\Users\Me>REM Set FPC Path C:\Users\Me>Set Path="C:\Users\Me\Lazarus\Android\laz4android"\fpc\2.7 .1\bin\i386-win32 C:\Users\Me>REM Make lazarus C:\Users\Me>make clean all bigide make: *** No rule to make target `clean'.  Stop. What am I missing ? Regards ---------------------------------------------------------------------- engkin · 2013-10-04 16:30 Hi Tintinux, I think you used quotation marks here: C:\Users\Me>SET FPC_BIN_PATH="C:\Users\Me\Lazarus\Android\laz4android" And they should (  ) showed up in wrong places like here: C:\Users\Me>"C:\Users\Me\Lazarus\Android\laz4android"\fpc\2.7.1\bin\i3 86-win32\fpcmkcfg.exe -d basepath="C:\Users\Me\Lazarus\Android\laz4android"\fpc\2.7.1 -o "C:\Us ers\Me\Lazarus\Android\laz4android"\fpc\2.7.1\bin\i386-win32\fpc.cfg Good luck. ---------------------------------------------------------------------- Prodigy · 2013-10-04 19:21 Quote from: DelphiFreak on October 04, 2013, 12:24:30 amThank you, now I got it also working with NDK9. REM copy files from NDK-folder into laz4android copy .\ndk\toolchains\arm-linux- androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-*.exe .\laz4android\fpc\2.7.1\bin\i386-win32\ REM re-build .\laz4android\build.bat pause I will try to add this part to laztoapk. Let's say to build an additional batch-file e.g. step 0. prepare.bat Next question: How could I tell the build-script that the customdrawn-package shall be installed? And now... I am looking for someone to get it working with JDK 1.7 instead of 1.6.x. Thank you. It works. Thanks. I got it also working with NDK9 and SDK r22.2.1. And I modified LazToApk project: + Working with SDK r22.2.1 (Replaced strings from "build- tools\18.0.1\" to "build-tools\18.1.0\") + All in one button to Build Project -> Create APK -> UnInstall APK -> Install APK + Capture "build project" output strings + Save last selected device to ini file + Target platform is Win32 and Win32 gui application is checked so don't show console window when start application ---------------------------------------------------------------------- engkin · 2013-10-05 01:01 @Prodigy, thanks for sharing. I like these modifications.  ------------------------------------------------ @Sam, glad to see that it worked. Quote from: DelphiFreak on October 04, 2013, 12:24:30 amAnd now... I am looking for someone to get it working with JDK 1.7 instead of 1.6.x. I think the problem is that %APK_SDK_PLATFORM%\android.jar was generated using JDK 1.6, so it needs to be regenerate with JDK 1.7, otherwise this line won't work. Code: [Select]call javac -verbose -encoding UTF8 -classpath %APK_SDK_PLATFORM%\android.jar -d %APK_PROJECT_PATH%\bin\classes %APK_PROJECT_PATH%\src\com\pascal\Test2\LCLActivity.java ---------------------------------------------------------------------- laguna · 2013-10-05 07:48 Please tutorial write  for Ubuntu, with apk generation. Thanks. ---------------------------------------------------------------------- engkin · 2013-10-08 23:39 Quote from: DelphiFreak on October 04, 2013, 12:24:30 amAnd now... I am looking for someone to get it working with JDK 1.7 instead of 1.6.x. It might be interesting to know that if you have both JDK 1.7 AND JRE 1.6, you can use JDK 1.7 to generate 1.6 compatible class files. The only change needed is to add "-source 1.6 -target 1.6" so instead of: java WhatEverGoesHereUsually javac WhatEverGoesHereUsually change it to: java -source 1.6 -target 1.6 WhatEverGoesHereUsually javac -source 1.6 -target 1.6 WhatEverGoesHereUsually In theory this should work, but I did not test it.  EDIT: I just checked android-sdk_r22.2.1\platforms\android-14\android.jar To be precise, I extracted Activity.class from it to check its header. Quoteminor version: 0 major version: 49 Major version 49 belongs to JDK 1.5, so if the previous suggestion did not work then MAYBE we should use -source 1.5 -target 1.5 instead. ---------------------------------------------------------------------- engkin · 2013-10-09 02:20 I managed to produce an apk file suitable for Android on Intel CPUs instead of ARM CPUs using the same build_debug_apk.bat file with a few modifications. So here is what I did: 1-Get NDK Toolchains Assembler and Linker for x86: First I copied both i686-android-linux-as.exe i686-android-linux-ld.exe from: android-ndk-r7c\toolchains\x86-4.4.3\prebuilt\windows\bin 2-Change Names: later I discovered that the cross compiler ppc386.exe is using different name for these files so I changed their names according to that to: i686-linux-android-as.exe i686-linux-android-ld.exe which is simply switching android and linux positions!!  3-Generate Android-i386 version I modified laz4android\build.bat to build the packages for Android on i386. I believe I did something like this: - make clean all bigide + cd C:\laz4android\fpc\2.7.1\source\packages + make clean all install OS_TARGET=android CPU_TARGET=i386 INSTALL_PREFIX=C:\laz4android\fpc\mine After I ran this build batch file I went to check C:\laz4android\fpc\mine where I found units\i386-android\* I moved i386-android folder to its expected location under laz4android\fpc\2.7.1\units next to arm-android folder 4-Modifications to Compiler Options On Lazarus IDE menu I went to Project->Project Options or Shift+Ctrl F11. When the window opened up I chose "Build Modes" under "Compiler Option" on the left to add another build mode. Renamed the original one as Android-arm, and the new one as Android-x86. Then made Android-x86 active to change its settings. -Chose "Paths" on the left: ---Under "Libraries (-Fl)" replaced the previous one with android-ndk-r7c\platforms\android-14\arch-x86\usr\lib\ ---Under "Target file name (-o)" android\libs\x86\liblclapp.so -Chose "Code Generation" on the left ---For "Target CPU family (-P) I chose i386. Not a surprise! -Chose "Other" on the left ---Under "Custom option" deleted "-CpARMV6" so it became -dANDROID -Xd (Not sure it was needed, but did it anyway) After that I built the library. To check that the file it produced was really for Intel I used Cygwin terminal, moved toward liblclapp.so folder and typed in "file liblclapp.so" the result was Quoteliblclapp.so: ELF 32bit LSB shared object, Intel 80386, version 1 (SYSV) dynamically linked, stripped Curious to know more, I tried also "ldd" in Cygwin which confused me by claiming that the shared library is dependent on ntdll.dll and kernel32.dll which is NOT true. 5-Modifications to build_debug_apk.bat replaced armeabi with x86, for instance, it has to create a folder named "x86" instead of "armeabi" - mkdir %APK_PROJECT_PATH%\raw\lib\armeabi + mkdir %APK_PROJECT_PATH%\raw\lib\x86 and so on... Then I tested the resultant apk file on Android and I made sure  that it does not have Houdini library - a library used in Android on Intel CPUs that allows using ARM libraries and it worked!! ---------------------------------------------------------------------- DelphiFreak · 2013-10-09 05:48 Hello Prodigy, thank you for your code. I have integrated it into the laztoapk project. But it's not finished yet and I will have not time until the 20th Oct to continue. Here some points I'd like to discuss. A) Shall we put an additional combobox so the user can choose between NDK tools 18.0.1 or 18.1.0 or shall I just always take the latest version ? B) Same about the how to select the version of NDK toolchain. Another combox to choose? I have added a current screen-shot. Source is at sourceforge. But it's not finished yet. Patches are welcome. ---------------------------------------------------------------------- ThMstr · 2013-12-14 17:43 Thanks for the instructions! Because it would be nice if one could run the (modified) app from Lazarus on the device or the emulator with one press of the mouse, I rearranged all the necessary commands in one batch-file and added the command to run the batch-file in Lazarus under Project, Project Options, Compiler Options, Compilation, Execute After. Give the command Compile and your app should run on the device (if connected) or the emulator (if running and given time). The Readme.txt file in the attached zip-file (in the directory Projects\Resources) describes in more detail how to set it up.