Lazarus
Programming => Operating Systems => Android => Topic started by: DelphiFreak on December 15, 2013, 01:10:17 pm
-
hi,
as you might have seen, i have put up a tutorial about lazarus and android.
it's based on laz4android and the tool laztoapk.
now i see some threads about "android module wizard".
could some in short explain me,
a. the difference between the two projects?
b. does the "android module wizard" need other stuff e.g. eclipse and if so why?
c. is laztoapk still needed or shall i stop improving it?
thank you.
sam
-
a. the difference between the two projects?
android module wizard makes use of laz4android, though basically laz4android is just a lazarus packaged for android development. the wizard adds a new project menu to and android controls tab to build android apps using data module style.
b. does the "android module wizard" need other stuff e.g. eclipse and if so why?
the wizard does need eclipse workspace (project structure generated by eclipse), because it's currently designed so. We've discussed and the author also agrees to remove it in the future since it's possible to create a template project structure that only requires ant to build.
c. is laztoapk still needed or shall i stop improving it?
no idea, but I don't use it. ant is enough for me.
-
Dear @DelphiFreak,
Since the beginning of my project I understood that his works would complement
my work precisely where it is weak: Eclipse dependency!
Then our work must meet soon now, in fact, I always thought that their
contribution is and will be very important. let's work together!
Best Regards!
-
I saw Simonsayz in the forum earlier. should try to contact him again. Three heads together are are better than three heads alone. :)
-
I saw Simonsayz in the forum earlier. should try to contact him again. Three heads together are are better than three heads alone. :)
Good, that would make things better I hope.
-
Hi All,
Yes, Simon is back, and told me he want to participate too!
Greetings!
-
Good, that would make things better I hope.
You never know about the future but I've got a feeling we could be onto something really good. The more people are involved the better the chances.
Hi All,
Yes, Simon is back, and told me he want to participate too!
Greetings!
That's good to hear.
-
@Leledumbo:
...We've discussed and the author also agrees to remove it in the future ...
And the future is now .... We are already doing it. :D
Thanks.
-
Hi all,
thank you for your answer's.
My knowledge on this is not good enough recommend a strategy.
The aim of laztoapk is simplify the handling of all these external stuff (JDK,NDK,SDK,laz4android) needed to build an android application with lazarus.
I got it working with a 1-click "Build&Install" button to compile and run a project. see http://www.novabit.ch/downloads/laztoapk/Lazarus%20and%20Android.pdf (http://www.novabit.ch/downloads/laztoapk/Lazarus%20and%20Android.pdf)
Thing's I dislike at the moment about laztoapk:
A) why do we need laz4android. It should be possible to do this with standard/default lazarus.
B) it's only working on windows. (I'd like to have a solution for e.g.linux as well).
C) no integration into the lazarus IDE.
Thing's I like about laztoapk:
D) no need for ant.
E) no need for eclipse.
F) opensource and available at sourceforge.net
What do you think about the following idea.
I add command-line support to laztoapk? e.g. laztoapk -p"project1.lpr" -b -i (-b means build,-i means install)
Regards,
Sam
And of course I am interested in suggestions about the point's A-F :-)
-
Hi DelphiFreak,
I'm manage the package of laz4android.
Infact you really don't need laz4android,also do with standard lazarus.I just packaging following files:
1.laz4android\fpc\2.7.1\bin\i386-win32\ppcrossarm.exe
2.laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi-as.exe
3.laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi-ld.exe
4.laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi-strip.exe
5.laz4android\fpc\2.7.1\units\arm-android all files
How can get those files ? you can search the wiki to building cross compiler:
http://wiki.lazarus.freepascal.org/Android (http://wiki.lazarus.freepascal.org/Android)
and the files arm-linux-androideabi-* in the android NDK packages.
Thanks and Best Regards!
-
Hi Truetom.
Does your package work only with ndk 7?
Thanks.
-
Since the Android OS, Tizen OS, Firefox OS, Ubuntu Phone OS and other OSs have come competitively, maybee we should start to add html5 code with pascal syntax like code in a packages, for the sake of platfrom compatibility as a graphic user interface. But it must a pascal POSIX like code. This is the main problem: multi platform graphic user interface.
In my opinion, doing conversion GUI native code from specific platform os especially mobile platform to pascal syntax is not hard BUT very long term job, moreover its change time by time depend on the os developers, and also freepascal is open source project (less funded community project). And we know that it is very hard to find program's bugs on OS other than Microsoft Windows, Linux or Mac OS X. It's hard because first we must buy the items, and do the bug finder, and so on.
I see nowdays, the html5 is the answer of the GUI which can be run natively without running specific browser. Nowdays operating system intended to built-in for running html code natively without browser with the help of specific library. Maybee this is the reason why processor manufacturers like Intel / AMD / ARM push the market of the usage of the html5 code, in mobile either in desktop or embedded.
I see the hypertext html 5 is very compatible to pascal syntax. The html 5 code has her own class, ID, attributes, elements mechanism. It also begins with START TAG and ends with END TAG.
<TAG> --- BEGIN
</TAG> --- END
Separating GUI html5 code and other platform independent library or program is also a good idea.
We already know some freepascal web or html packages done by some owesome people here. But every each of them have different programming technique. I think we should need a base standard syntax code.
If we like to do such such html5 conversion, before that, I think, we should also have a proposal like RFC's. Thank you.
-
Hi,
@truetom: Thank you for your explanation.
@zariq: The solution from truetom work also with ndk9.
You need to copy the files
from
\ndk\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-*.exe
to
laz4android\fpc\2.7.1\bin\i386-win32\
Hi Truetom.
Does your package work only with ndk 7?
Thanks.
-
@zariq: The solution from truetom work also with ndk9.
You need to copy the files
from
\ndk\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-*.exe
to
laz4android\fpc\2.7.1\bin\i386-win32\
Hi Truetom.
Does your package work only with ndk 7?
Thanks.
AND rebuild your laz4android\fpc\2.7.1\units\arm-android files
-
Yes that work now. Thank you Delphifreak and Engkin.
-
Hi,
I am trying to create an innosetup project to download and install the needed packages.
The download of the external packages (sdk,ndk and laz4android I got working.
[_ISToolDownload]
Source: http://dl.google.com/android/android-sdk_r22.3-windows.zip; DestDir: {tmp}; DestName: android-sdk_r22.3-windows.zip
Source: http://dl.google.com/android/ndk/android-ndk-r9b-windows-x86.zip; DestDir: {tmp}; DestName: android-ndk-r9b-windows-x86.zip
Source: http://sdrv.ms/12cHbIZ; DestDir: {tmp}; DestName: laz4android download
But how to tell Innosetup to extract the two downloaded zip-files?
-
Hello,
I am currently trying to create an installer with InnoSetup to simplify installation&setup.
I got it working to download and un-pack sdk and ndk. see http://sourceforge.net/p/laztoapk/svn/HEAD/tree/trunk/install/laztoapk.iss (http://sourceforge.net/p/laztoapk/svn/HEAD/tree/trunk/install/laztoapk.iss)
My questions: (maybe truetom can answer?)
A) Could you create an InnoSetup installer for laz4android? ( maybe with a recent version of fpc 2.7.1)
B) Could you place the setup.exe somewhere I can grab it with my Installer? (Automatic grabbing from your SkyDrive did not work)
Thank you all.
-
Hello, DelphiFreak
To answer your questions:
A) I have create a new laz4android package with a recent of FPC 2.7.1 to test.It's create with FPC SVN 26270 + Lazarus trunk SVN 43585 and use android NDK r9b(arm-linux-androideabi-4.6 + x86-4.6),but this package must be test. this package is 3in1(win32/arm-andriod/i386-android).
In this days I will be uploaded to skydrive.
I will also try use InnoSetup to create a installer for laz4android package.
B)Sorry , I have not other space to place this package, do you have one or can you provide a suggestion for me?
Thanks and Best Regards!
-
Hello TrueTom,
great news from your side. Thank you.
B) I recommend you to host your stuff at sourceforge.net. It's free.
I uploaded my experimental installer: https://sourceforge.net/projects/laztoapk/files/?source=navbar (https://sourceforge.net/projects/laztoapk/files/?source=navbar)
If you need help about InnoSetup, I will try to help you.
Best regards,
Sam
-
Hello , DelphiFreak
I have uploaded new laz4android package to sourceforge.net,not a installer file just a 7z file:https://sourceforge.net/projects/laz4android/files/?source=navbar (https://sourceforge.net/projects/laz4android/files/?source=navbar)
Thanks and Best Regards!
-
Hello TrueTom, thank you very much!
-
Hello TrueTom,
thank you very much for uploading laz4android to sourceforge.
You can watch the progress of my installer at https://sourceforge.net/projects/laztoapk/files/ (https://sourceforge.net/projects/laztoapk/files/)
Sam
-
Hello TrueTom,
maybe you could change your "bulid.bat" to something like this:
if "%1"=="" SET FPC_BIN_PATH=%~dp0
if NOT "%1"=="" SET FPC_BIN_PATH=%1
This would help me to call you batchfile with an additional command-line parameter.
e.g. build.bat "C:\Program Files\laztoapk\3rdparty\laz4android"
And I think the path to strip.exe should be
%FPC_BIN_PATH%\fpc\2.7.1\bin\i386-win32\strip.exe lazarus.exe
%FPC_BIN_PATH%\fpc\2.7.1\bin\i386-win32\strip.exe lazbuild.exe
%FPC_BIN_PATH%\fpc\2.7.1\bin\i386-win32\strip.exe startlazarus.exe
Thank you.
Sam
-
Hello , DelphiFreak
I have uploaded a laz4android installer package to sourceforge.net,https://sourceforge.net/projects/laz4android/files/?source=navbar (https://sourceforge.net/projects/laz4android/files/) (OK). it's name laz4android1.3-43585-FPC2.7.1.exe.
I wish this installer file could useful to you.
Thanks and Best Regards!
-
Hello forum, Hello truetom,
thank you for your new installer.
I have integrated it into my setup.
IMPORTANT:
This setup will download around 600MByte (android sdk,ndk and laz4android) and extract this stuff (takes a while ;-)). Means around 4GByte Diskspace is needed.
https://sourceforge.net/projects/laztoapk/files/setup_laztoapk_alpha_003_experimental.exe/download (https://sourceforge.net/projects/laztoapk/files/setup_laztoapk_alpha_003_experimental.exe/download)
My setup downloads&installs now android ndk,sdk,laz4android. That's fine so far.
But there are still some small issues I'd like to get solved.
A) please change your build.bat as suggested in my previous message.
B) after installation of laz4android, I need to call startlazarus.exe (IDE/FPC setup dialog shows up). Could this be automated somehow so the lazarus IDE is not started at that time. ( just writing of the needed config files?)
C) I start "SDK Manager.exe" and "AVD Manager.exe" from Innosetup. Unfortunally the get started in parallel. But I would like to start "AVD Manager.exe" after "SDK Manager.exe" has finished. How to do this with innosetup?
Thank you.
Sam
-
A) please change your build.bat as suggested in my previous message.
FYI: Currently working on fpcup support for ARM (linux & android) cross compilers ;) fpcup's philosophy is not to automate getting binutils/libs (e.g. from the Android NDK) downloaded, but check for their presence.
If the check succeeds, it can build an FPC cross compiler.
Perhaps worth looking into integration with fpcup a bit further down the line - or keeping it in mind.
fpcup is open source, so of course I'd be happy if anybody used some code from it.
B) after installation of laz4android, I need to call startlazarus.exe (IDE/FPC setup dialog shows up). Could this be automated somehow so the lazarus IDE is not started at that time. ( just writing of the needed config files?)
fpcup has functionality to write basic Lazarus config files. As Lazarus does not provide config file writing ability to external parties (yet), it's stand alone code but does use laz_xml2 (I think the name was) and other units Lazarus itself uses.
fpcup also creates an fpc.cfg configuration file that reflect the correct directories etc, including cross-compiler setup)
C) I start "SDK Manager.exe" and "AVD Manager.exe" from Innosetup. Unfortunally the get started in parallel. But I would like to start "AVD Manager.exe" after "SDK Manager.exe" has finished. How to do this with innosetup?
I vaguely remember there should be some kind of "synchronous" option in the inno setup keywords for running external exes that waits for completion...
Thank you.
Thank you ;)
[/quote]
-
Hello BigChimp,
thank you for your answers.
I am really impressed by your project "fpcup" and I am glad you are working on arm/android support.
With your "fpcup" solution I could replace the solution "laz4android".
But for now I will stay with "laz4android", because it does not contain more dependencies. (e.g. svn)
I would like to make things easier and need to avoid as many external stuff as possible.
It's absolutly horrible to have 4GByte to install to develop a little "hello world" for android.
Here my latest installer: WARNING: This is still experimental!
http://sourceforge.net/projects/laztoapk/files/setup_laztoapk_alpha_004_experimental.exe/download (http://sourceforge.net/projects/laztoapk/files/setup_laztoapk_alpha_004_experimental.exe/download)
Innosetup:
https://sourceforge.net/p/laztoapk/svn/HEAD/tree/trunk/install/laztoapk.iss (https://sourceforge.net/p/laztoapk/svn/HEAD/tree/trunk/install/laztoapk.iss)
Regards,
Sam
-
Thanks, Sam, that's clear.
-
Hello truetom,
I took an attempt today to use your laz4android package from sourceforge (v43858).
It does build the apk and I can install it, but if I click onto a button then the app crashes.
If I compile the same project with your previous version of laz4android (v41139 from skydrive), then the app works fine.
https://dl.dropboxusercontent.com/u/3753548/project1_41139.7z (https://dl.dropboxusercontent.com/u/3753548/project1_41139.7z) --> Works ok.
https://dl.dropboxusercontent.com/u/3753548/project1_43585.7z (https://dl.dropboxusercontent.com/u/3753548/project1_43585.7z) --> Start's but crashes when a button is clicked.
Do you have any idea what could be wrong?
Thank you.
Sam
-
Hello DelphiFreak!
Sorry! My app also crashes.
I have not good idea.I will make a new package to test it.
Thanks and best regards!
-
Hello!
I look at the logcat,It's crashes code:
I/DEBUG ( 1055): pid: 1562, tid: 1562 >>> com.pascal.lcltest <<<
I/DEBUG ( 1055): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 614c540e
I/DEBUG ( 1055): r0 4669e4a0 r1 0000006c r2 000000d4 r3 614c540f
I/DEBUG ( 1055): r4 00000041 r5 00000089 r6 bead5498 r7 4428c550
I/DEBUG ( 1055): r8 bead53ec r9 4428c544 10 0000ac30 fp bead5034
I/DEBUG ( 1055): ip bead5038 sp bead4fe0 lr 809c7850 pc 614c540e cpsr 20000030
I/DEBUG ( 1055): d0 418000003f800000 d1 0000000000000000
I/DEBUG ( 1055): d2 3f8000003f800000 d3 410000003f800000
I/DEBUG ( 1055): d4 4080000000000000 d5 4160000049b00000
I/DEBUG ( 1055): d6 40800000c1100000 d7 000000003f800000
I/DEBUG ( 1055): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 1055): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 1055): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 1055): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 1055): d16 000000010028ad88 d17 c053000000000000
I/DEBUG ( 1055): d18 0000000000000000 d19 0000000000000000
I/DEBUG ( 1055): d20 3ff0000000000000 d21 8000000000000000
I/DEBUG ( 1055): d22 0000000000000000 d23 00ff000000000000
I/DEBUG ( 1055): d24 00ff000000000000 d25 00ff000000000000
I/DEBUG ( 1055): d26 0001000100010001 d27 0001000100010001
I/DEBUG ( 1055): d28 0001000100010001 d29 3ff0000000000000
I/DEBUG ( 1055): d30 0000000000000000 d31 3ff0000000000000
I/DEBUG ( 1055): scr 60000012
I/DEBUG ( 1055):
I/DEBUG ( 1055): #00 pc 614c540e
I/DEBUG ( 1055): #01 lr 809c7850 /data/data/com.pascal.lcltest/lib/liblclapp.so
I/DEBUG ( 1055):
I/DEBUG ( 1055): code around pc:
I/DEBUG ( 1055): 614c53ec ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1055): 614c53fc ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1055): 614c540c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1055): 614c541c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1055): 614c542c ffffffff ffffffff ffffffff ffffffff
I/DEBUG ( 1055):
I/DEBUG ( 1055): code around lr:
I/DEBUG ( 1055): 809c7830 e590003c e51b2044 e51b1040 e51b303c
I/DEBUG ( 1055): 809c7840 e593303c e5933000 e5933068 e12fff33
I/DEBUG ( 1055): 809c7850 e3500000 0a00001b e51b0040 e3500000
I/DEBUG ( 1055): 809c7860 ba000018 e51b003c e1a01000 e5911000
I/DEBUG ( 1055): 809c7870 e59110b0 e12fff31 e51b1040 e1510000
I/DEBUG ( 1055):
I/DEBUG ( 1055): stack:
I/DEBUG ( 1055): bead4fa0 ffff6464
I/DEBUG ( 1055): bead4fa4 46726d20
I/DEBUG ( 1055): bead4fa8 bead5004
I/DEBUG ( 1055): bead4fac bead4fb8
I/DEBUG ( 1055): bead4fb0 80a15798 /data/data/com.pascal.lcltest/lib/liblclapp.so
I/DEBUG ( 1055): bead4fb4 80a13448 /data/data/com.pascal.lcltest/lib/liblclapp.so
I/DEBUG ( 1055): bead4fb8 00000040
I/DEBUG ( 1055): bead4fbc 00000004
I/DEBUG ( 1055): bead4fc0 bead5498
I/DEBUG ( 1055): bead4fc4 4428c550
I/DEBUG ( 1055): bead4fc8 bead504c
I/DEBUG ( 1055): bead4fcc 466c1260
I/DEBUG ( 1055): bead4fd0 00000000
I/DEBUG ( 1055): bead4fd4 00000000
I/DEBUG ( 1055): bead4fd8 466b161c
I/DEBUG ( 1055): bead4fdc 80bf5634 /data/data/com.pascal.lcltest/lib/liblclapp.so
I/DEBUG ( 1055): #00 bead4fe0 00000004
I/DEBUG ( 1055): bead4fe4 80906bc4 /data/data/com.pascal.lcltest/lib/liblclapp.so
I/DEBUG ( 1055): bead4fe8 466affa0
I/DEBUG ( 1055): bead4fec 00000004
I/DEBUG ( 1055): bead4ff0 000000d4
I/DEBUG ( 1055): bead4ff4 0000006c
I/DEBUG ( 1055): bead4ff8 46726d20
I/DEBUG ( 1055): bead4ffc bead5060
I/DEBUG ( 1055): bead5000 00000000
I/DEBUG ( 1055): bead5004 00000000
I/DEBUG ( 1055): bead5008 00000000
I/DEBUG ( 1055): bead500c 467271a0
I/DEBUG ( 1055): bead5010 bead504c
I/DEBUG ( 1055): bead5014 00000000
I/DEBUG ( 1055): bead5018 00000000
I/DEBUG ( 1055): bead501c 8099901c /data/data/com.pascal.lcltest/lib/liblclapp.so
I/DEBUG ( 1055): bead5020 00000000
I/DEBUG ( 1055): bead5024 00000041
I/BootReceiver( 1088): Copying /data/tombstones/tombstone_06 to DropBox (SYSTEM_TOMBSTONE)
E/InputDispatcher( 1088): channel '40727358 com.pascal.lcltest/com.pascal.lcltest.LCLActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
E/InputDispatcher( 1088): channel '40727358 com.pascal.lcltest/com.pascal.lcltest.LCLActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
I/WindowManager( 1088): WIN DEATH: Window{40727358 com.pascal.lcltest/com.pascal.lcltest.LCLActivity paused=false}
I/ActivityManager( 1088): Process com.pascal.lcltest (pid 1562) has died.
D/Zygote ( 1057): Process 1562 terminated by signal (11)
Can you help me?
Thanks and best regards!
-
Hi,
I have no idea. Sorry. I guess there is either something wrong in newer fpc version or some compiler options need to be changed.
I think the only way to find out is to go back to an older fpc revision (by svn) and then try again. This could give a hint what causes this trouble.
Regards,
Sam
-
Hi,
I spent some hour's to find the problem but with no success.
The only thing I found out.
If I take the fpc folder from laz4android 41139, then it works. If I take the fpc folder from laz4android 43585 then it does not work.
Sam
-
I have opened a bug report in the bugracker.
http://bugs.freepascal.org/view.php?id=25686 (http://bugs.freepascal.org/view.php?id=25686)
-
I have updated my setup and tutorial.
http://sourceforge.net/projects/laztoapk/files/?source=navbar (http://sourceforge.net/projects/laztoapk/files/?source=navbar)
But I had to go back to laz4android 41139 because I could not make apps with laz4android 43585.
-
Hello truetom,
leslie found the problem.
His solution works. See here:
http://www.pilotlogic.com/sitejoom/index.php/forum/android/2708-app-launches-and-then-dies-the-moment-you-click?start=10#5349 (http://www.pilotlogic.com/sitejoom/index.php/forum/android/2708-app-launches-and-then-dies-the-moment-you-click?start=10#5349)
I will try to send a svn-patch to author of the customdrawn-library.
Regards,
Sam
-
Hello DelphiFreak!
Thank you and leslie fixed this problem!
I will fixed my laz4android-43585 and re-upload to the sf.net.
Thanks and best regards!
-
Hello,
I have upload new laz4android1.3-43585-FPC2.7.1-New.7z and laz4android1.3-43585-FPC2.7.1-New.exe to the sf.net.
link:http://sourceforge.net/projects/laz4android/files/?source=navbar (http://sourceforge.net/projects/laz4android/files/?source=navbar)
Thanks and best regards!
-
truetom,
Thank you for all your work and effort with laztoapk and laz4android.
I downloaded the most current laztoapk and when installing I let the installer download sdk, ndk and laz4android.
The laz4android is compiled and installed. The sdk,zip and ndk.zip are not unzipped, but I did that myself just in C:\laztoapk\donwloads\sdk and C:\laztoakp\downloads\ndk
I did this on a fresh installation of XP-Pro. I also installed Java jdk-7u25-windows-i586.
Issue #1
Now I would have expected that this would have satisfied the laztoapk, but obviously there are some files missing because I get the error message:
No build-tools found in SDK-path <C:\laztoapk\downloads\sdk\android-sdk-windows\build-toold\> Did you install the android SDK and setup the correct SDK-path?
SDK Manager reports that SDK Tools are installed.
In the laztoapk screen the two drop down boxes on the left report:
"No NDK platfom found"
"No SDK Build-Tools found"
JDK path seems to be in order.
What am I overlooking here?
Issue #2
When starting the IDE and writing a very simple program in laz4android and trying to compile it for "Target OS = android" and "Target CPU family = arm" I get the following error when compiling:
gtk2\gtk2int.pas(36,6) Fatal: Can't find unit XLib used by Gtk2Int
Your advice would be highly appreciated.
Regards
Kamau