Hallo,
nach langer Abwesenheit (auch vom Programmieren) habe ich mal wieder ein Problem bei dem ich nicht mehr weiterkomme, und eure Hilfe brauche.
Ich habe seit Jahren auf Linux einen Webserver laufen. Unter Anderem habe ich dort auch mein "Rezeptbuch" abgelegt.
Bisher habe ich mit die Rezepte immer per Internetbrowser angesehen. Das "Rezeptbuch" ist mittels PHP,
HTML, Javascrip, CSS und einer
MySQL Datenbank aufgebaut.
Ich moechte mir nun eine Windows/Android-App programmieren, mit der ich mir die Rezepte ebenfalls ansehen kann. Zum Einen moechte ich damit meine Programmierkenntnisse in Richtung Android erweitern, zum Anderen moechte ich in die Android-App auch die Moeglichkeit zur Erstellung einer Einkaufsliste einbauen.
Ich habe schon eine - unter Windows - komplett funktionierende Anwendung (Multi-Device-Anwendung).
Die Anwendung verwendet von dbexpress eine SQLConnection-Komponente und eine SQLQuery-Komponente.
Die Anwendung laesst sich auch kompilieren und auf eines meiner Android-Geraete uebertragen, tut dort aber nichts. Der Bildschirm bleibt schwarz und irgendwann meldet das System, dass die Anwendung "haengt".
Das Ganze haengt nur mit den Datenbankkomponenten zusammen. Nehme ich die Aufrufe zum Verbinden mit dem Datenbankserver und Einlesen der Rezeptdaten heraus (auskommentieren), laeuft die Anwendung (was dann noch an "Funktion" uebrigbleibt) auch unter Android.
Um dem Problem auf den Grund zu gehen, habe ich nun einfach mal eine neue Anwendung erzeugt, welche nur ein paar Controls wie Labels und Buttons hat, um zu sehen was sich auf dem Android-Geraet tut. -> Funktioniert natuerlich ohne Probleme.
Dann habe ich die dbexpress-Komponenten (siehe oben) hinzugefuegt (ohne jegliche Funktion). Auch dann funktioniert die App noch.
Ich kann die
SQL-Connection-Komponente auch konfigurieren (per Programmcode) und auch die
Query-Komponente mit
SQL Strings fuettern. All das funktioniert noch. D. h., die App startet und zeigt die verwendeten Buttons und Labels.
Sobald ich aber einen Open- oder EcexSQL-Befehl absetze, oder die
SQL-Connection-Komponente auf "Connected = true" setze, tut sich bei der Android App nichts mehr.
Ich denke, dass es daran liegt, dass die Dateien dbxmys.dll und libmysql.dll nicht auf die Android-Geraete uebertragen werden.
Ich habe diese in der "Deployment-Konfiguration" angegeben. Ausprobiert habe ich als Zielverzeichnisse schon ".\", "library\lib\armeabi-v7a" und "library\lib\armeabi".
Aber ich kann die Dateien auf den Geraeten (sind bis auf eines gerootet) nicht finden.
Ich habe noch eine andere Anwendung programmiert habe, welche zusaetzliche Dlls (BASS fuer Mp3) benoetigt. Bei dieser werden die Dlls auf die Geraete uebertragen.
Ich kann keinen Unterschied feststellen, wenn ich bei beiden Anwendungen die "Deployment-Konfiguration" vergleiche (was die zusaetzlichen Dlls anbelangt).
Nun meine Fragen:
Hat schon jemand eine Android App entwickelt, welche mittels dbxpress-Komponenten auf eine
MySQL-Datenbank zugreift? Wenn ja, wo genau muessen welche Dateien mit ausgeliefert werden?
Ich habe (hier) schon eine Threads gesehen, wo "letztendlich" auf REST,
SOAP oder Datasnap "ausgewichen" wird. Da es sich bei mir um meine "ganz persoenliche" Webseite/Datenbank mit etwa 400 Rezepten geht, moechte ich nach Moeglichkeit keine weitern "Server-/Client-Anwendungen/-Komponenten" ins Spiel bringen.
Ich habe mir diesbezueglich auch schon diverse Youtube-Videos angesehen, aber dabei werden immer nur Windows-Anwendungen gezeigt, welche ja bei mir auch schon wunderbar funktioniert. Wie dies aber ganz genau mit Firemonkey Mobile und Android funktioniert, habe ich leider nicht gefunden.
Meine Konfiguration:
Windows 7
Delphi 10 Seattle
(ich habe auch noch aeltere Delphi-Versionen, aber dort steht die Webbrowser-Komponente nicht fuer Android zur Verfuegung)
Diverse Android-Geraete mit den unterschiedlichsten Android-Versionen (Galaxy S1 Android 2.3.5 gerootet, Galaxy S2 Android 4.1.2 gerootet, Galaxy S5 Android 6.0.1 gerootet, Galaxy Note 10.1 2014 Android 5.1.0 gerootet, Galaxy S7 Edge Android 7.0 Samsung Stock-ROM)
Ich hoffe, ihr seid beim Lesen nicht eingeschlafen. Ich wollte euch gleich so viele Informationen wie moeglich geben.
Danke fuer's Durchlesen und eure Hilfe/Kommentare im Voraus!
AnCorr