Laz4Android

zappa2
Beiträge: 43
Registriert: Do 28. Nov 2013, 09:54

Laz4Android

Beitrag von zappa2 »

Ich versuche nun schon seit einer Woche vergeblich, Laz4Android zum Laufen zu bekommen, und habe schon mehrere Versionen installiert/deinstalliert. Auch habe ich schon folgende Tutorials abgearbeitet:
http://wiki.lazarus.freepascal.org/Android4Pascal
http://wiki.lazarus.freepascal.org/Android_tutorial
Alles umsonst. Ich bekomme das Testprojekt nicht kompiliert. Momentan hängt sich der Compiler(Linker) an den Fehlermeldungen auf:

C:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi-ld.bfd.exe: cannot find -lpthread
C:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi-ld.bfd.exe: cannot find -lX11
C:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi-ld.bfd.exe: cannot find -lgdk_pixbuf-2.0
...
C:\android\laz4android\fpc\2.7.1\bin\i386-win32\arm-linux-androideabi-ld.bfd.exe: cannot find -latk-1.0
alkis4android.lpr(38) Fatal: There were 1 errors compiling module, stopping


Ich habe die Suchpfade sowohl in den Compileroptions als auch in der fpc.cfg ergänzt/korrigiert. Nebenbei erwähnt: ich habe das mit fpc2.7.1 und 3.0.0 versucht.

Gibt es irgendjemanden hier, der eine lauffähige Laz4Android-Installation unter Win32 hat? Und der bereit wäre, mir mal seine Konfigurationsdaten zu verraten?

Ich habe letzte Woche mal das Delphi10-Trial installiert. Und -hoppla- nach ca. 30 Minuten inkl. Installation hatte ich meine erste lauffähige 'Hello World'-App auf meinem Handy. Das muss doch mit Lazarus auch zu machen sein?!

Bin wirklich für jeden Tipp dankbar!

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Laz4Android

Beitrag von Mathias »

Lazarus und Android ist leider immer noch einen Zangengeburt.

Obwohl ich es nicht gerne sage, aber für die Android-Entwicklung ist man momentan am besten mit Android-Studio bedient.
Ich weiss, dies ist Java, aber Lazarus wen man es zum laufen kriegt, wandelt das Ganze beim kompilieren auch in Java um.
Die Muttersprache von Android ist leider Java.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Laz4Android

Beitrag von Michl »

Vor einem halben/dreiviertel Jahr hatte ich mich mal durch diese Anleitung http://wiki.lazarus.freepascal.org/Android_tutorial gehangelt. Es hatte eigentlich alles ohne größere Probleme funktioniert. Allerdings konnte ich die "Hello World" App nur auf meinem Tablett ausführen, da es noch ein altes Android drauf hatte. Mein Handy funktionierte aufgrund der aktuelleren Version (damals Android 5) nicht.

Leider habe ich zur Zeit nix mehr davon installiert, sodaß ich dir keine gute Hilfe bieten kann. Nur wenn ich mir deine Verzeichnisstruktur anschaue, fällt mir auf, daß du FPC 2.7.1 nutzt. AFAIK ist aktuell Laz4Android FPC 3.0.0 basiert (https://sourceforge.net/projects/laz4android/).

Den nochmaligen Einstieg würde ich vermutlich so versuchen:
http://wiki.freepascal.org/LAMW

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Laz4Android

Beitrag von Christian »

aber Lazarus wen man es zum laufen kriegt, wandelt das Ganze beim kompilieren auch in Java um.

Das ist aber nur so wenn man den java fpc benutzt. Und damit sollts auch nicht allzuviele probleme geben. Laz4Android kompiliert native Executables was evntl hier auch eines der Probleme sein könnte die laufen halt nur auf einer Plattform
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Laz4Android

Beitrag von theo »

Wie Mathias schon sagt, ver(sch)wende deine Zeit lieber mit Android Studio.

Android/Java mit Lazarus/FPC ergibt einfach einfach in der Praxis keinen richtigen Sinn.
Das ist eine Spielerei. Damit kommst du über "Hello World" nicht hinaus und du wirst es auch nicht wollen.
Dasselbe gilt für Versuche, mit Lazarus HTML/JS/PHP zu programmieren.

my 2¢

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Laz4Android

Beitrag von Warf »

Schon mal Lamw ausprobiert?
Dabei arbeitet mittels JNI das native Pascal Programm mit Java quellcode zusammen und somit kannst du zum einen Lazarus wie gewohnt mit WYSIWYG Formulareditor arbeiten, allerdings wenn du was exotisches brauchst kannst du das in Java machen. Ist sogar relativ einfach solange man nur beim Pascal Teil bleibt, wenn man aber richtig loslegen will sollte man auch Android-Java lernen

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Laz4Android

Beitrag von theo »

Warf hat geschrieben:Schon mal Lamw ausprobiert?

Nein

Warf hat geschrieben: wie gewohnt mit WYSIWYG Formulareditor arbeiten

Geht mit AS auch: download/file.php?id=2720&mode=view

Warf hat geschrieben: wenn man aber richtig loslegen will sollte man auch Android-Java lernen

Sage ich ja, "Hello World". :wink:

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Laz4Android

Beitrag von Warf »

theo hat geschrieben:
Warf hat geschrieben:Schon mal Lamw ausprobiert?

Nein

Warf hat geschrieben: wie gewohnt mit WYSIWYG Formulareditor arbeiten

Geht mit AS auch: download/file.php?id=2720&mode=view

Warf hat geschrieben: wenn man aber richtig loslegen will sollte man auch Android-Java lernen

Sage ich ja, "Hello World". :wink:

Mehr als Hello World geht schon, aber es sind natürlich nicht alle Klassen der Android API umgesetzt für Pascal, das heißt wenn man z.B. P2P Wifi verwenden will muss man sich mit Java auseinander setzen. Mittlerweile ist die Komponentenpallete ziemlich groß, und für die meißten Anwendungen sollte es reichen.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Laz4Android

Beitrag von theo »

Warf hat geschrieben:Mehr als Hello World geht schon, aber es sind natürlich nicht alle Klassen der Android API umgesetzt für Pascal, das heißt wenn man z.B. P2P Wifi verwenden will muss man sich mit Java auseinander setzen. Mittlerweile ist die Komponentenpallete ziemlich groß, und für die meißten Anwendungen sollte es reichen.


Gut, das glaube ich dir ja. Aber welchen Vorteil habe ich davon, für Android Lazarus zu verwenden und nicht Android Studio?
Die Android Klassenbibliothek muss ich ja eh kennen und ob ich nun "{" oder "begin" oder sonstwas schreibe, bemerke ich schon gar nicht mehr, da ich dauernd mit JS, PHP etc. zu tun habe.

Oder liege ich da falsch?

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Laz4Android

Beitrag von Warf »

theo hat geschrieben:
Warf hat geschrieben:Mehr als Hello World geht schon, aber es sind natürlich nicht alle Klassen der Android API umgesetzt für Pascal, das heißt wenn man z.B. P2P Wifi verwenden will muss man sich mit Java auseinander setzen. Mittlerweile ist die Komponentenpallete ziemlich groß, und für die meißten Anwendungen sollte es reichen.


Gut, das glaube ich dir ja. Aber welchen Vorteil habe ich davon, für Android Lazarus zu verwenden und nicht Android Studio?
Die Android Klassenbibliothek muss ich ja eh kennen und ob ich nun "{" oder "begin" oder sonstwas schreibe, bemerke ich schon gar nicht mehr, da ich dauernd mit JS, PHP etc. zu tun habe.

Oder liege ich da falsch?


Naja du kannst Pascal mit der RTL und FCL verwenden. Die Android Bibliotheken musst du nur kennen wenn du selbst was über die JNI machen willst, ansonsten nutzt du einfach die Komponentenpalette. Ich mag Java überhaupt nicht, keine Operatoren überladen, keine Records, kein Call by Reference, keine Zeigerarithmetik, etc. Da hab ich definitiv Pascal lieber. Außerdem, z.B. du möchtest ein Lazarus Programm von Windows auf Android Porten, so musst du die Logik nicht ändern, sondern nur den Android Spezifischen und Nutzerinteraktionsteil. Grade wenn man sich mal eben eine kleine App zusammenbasteln will die z.B. den Unistundenplan runterläd und anzeigt, mit Lamw brauche ich nichts über Java oder Android zu wissen, ich erstelle mir ein Paar Darstellungskomponenten, eine jHttpClient komponente und kann alles machen ohne was von Java überhaupt zu wissen.

PS: Außerdem hat Lamw bei mir mit dem ersten Versuch der Installation direkt funktioniert, im Gegensatz zu AS, für welches ich Stunden zum einrichten gebraucht habe

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Laz4Android

Beitrag von Christian »

Das betrifft nur die Variante wenn du nicht den ppcjvm nimmst. Du kannst auch richtigen Java bytecode mit fpc erzeugen da hat man dann nicht die komplette FCL zur Verfügung.
hat den Vorteil das man trotzdem seine fertigen Routinen für wasauchimmer verwenden kann. Wenn man z.b. ne Business Logik in einer Klasssenbibliothek gebaut hat kann man die auf PC,Android und iOS einsetzen, mit der selben Codebasis. Gerade im Hinblick auf ObjectiveC ist das Gold wert. und trotzdem kann man die jewailigen Oberflächen in den nativen Komponenten für dei jewailige Plattform bauen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Laz4Android

Beitrag von theo »

Ja, wie gesagt, ich kenne das zu wenig.
Ich habe einfach recht gute Erfahrungen gemacht, das jeweilige Mainstream System oder Tool zu verwenden.
Es mag manchmal zum Verzweifeln sein, aber der alte Spruch "nobody ever got fired for buying IBM" trifft mMn immer mehr zu.
Ein Tool mag per se besser sein, aber die Größe der Anwendergemeinde ist immer noch das Wichtigste.
Es gibt wohl kaum noch eine Aufgabestellung mit z.B. PHP und MySQL (MariaDB), für welche man nicht binnen Sekunden im Web eine Lösung findet.
Das ist m.M.n unter dem Strich wichtiger als ein an sich "besseres" Werkzeug zu verwenden.

Ausnahme von der IBM Regel: Lazarus für den Desktop. :wink:

Mathias
Beiträge: 6164
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Laz4Android

Beitrag von Mathias »

Gut, das glaube ich dir ja. Aber welchen Vorteil habe ich davon, für Android Lazarus zu verwenden und nicht Android Studio?
Die Android Klassenbibliothek muss ich ja eh kennen und ob ich nun "{" oder "begin" oder sonstwas schreibe, bemerke ich schon gar nicht mehr, da ich dauernd mit JS, PHP etc. zu tun habe.

Ich würde es auch viel lieber mit Lazarus machen, ist ist nicht nur wegen den {}, Pascal ist einfach übersichtlicher. Auch der Editor von Lazarus ist übersichtlicher und vor allem auch in deutsch.

Aber in meine Augen, ist Android auch so eine Missgeburt, um Programme zu entwickeln. Wieso habe die das nicht so einfach gemacht, so wie es in Lazarus der Fall ist. So mit einem Hauptform. Ich habe mir schon fast die Zähne ausgebissen, als ich eine Messagebox machen wollte. Da wurde irgend so ein Context verlangt, und woher nehmen und nicht stehlen.
In Lazarus gibt es die On???? Ereignisse, bei Android muss man dies recht mühsam auswerten. Gutes Beispiel ist das 2-Finger snipsen, dies habe ich bis heute nicht gelöst.
Ein OnSnips und dies währe so einfach.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Laz4Android

Beitrag von Christian »

Ja ich glaub alle haben verstanden das es mehrere Hinweise gab wie man das zu machen hat :) Wir sind hier aber im Lazarus Forum ;)
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

zappa2
Beiträge: 43
Registriert: Do 28. Nov 2013, 09:54

Re: Laz4Android

Beitrag von zappa2 »

Euch allen erst mal vielen Dank für die umfangreichen Hinweise.

Wie bereits eingangs erwähnt, funktioniert das Entwickeln für Android mit dem neuen Delphi10 wirklich kinderleicht. Es sind einfach nur die Komps in den Paletten vorhanden, die in Android funktionieren. Und wie auch immer die die On???-Ereignisse realisiert haben (in der Starter-Edition gibt es ja keine Quellen...), it works fine!

@Michl: Ich habe das neben FPC2.7.1 natürlich auch mit 3.0.0 probiert.

@Warf: Das LAMW-Tutorial werde ich abarbeiten. Mal sehen, ob ich da mehr Erfolg habe => ich werde hier ein Feedback dazu abgeben.

Antworten