Italian community of Lazarus and Free Pascal
Programmazione => Mobile => Topic aperto da: enricomiani - Gennaio 07, 2021, 11:20:54 am
-
Salve a tutti,
ho appena installato Lazarus 2.0.0 con FPC 3.0.4 su un portatile 64 bit con Windows 10. Ho provato a compilare un esempio fornito con LAMW (controls.lpr) per un Raspberry Pi3B+ con Android, ma la compilazione fallisce perché non trova il file ant.bat nella directory di Gradle 6.7.1 e suggerisce di controllare la correttezza del path di Gradle. Il path è corretto, ma il file ant.bat non è presente da nessuna parte. Sono però presenti vari ant con altre estensioni (ant.jar, ant.pom ecc.). Cosa dovrei fare per risolvere questo impasse?
Enrico
-
Come hai installato il tutto? Hai seguito una guida o hai usato un tool?
-
Io ai tempi quando ho installato LAMW (su ubuntu) ho usato un tool chiamato LAMW Manager.
Qui puoi trovare un riferimento.
https://forum.lazarus.freepascal.org/index.php/topic,45361.msg373040.html#msg373040
-
Sto utilizzando lazandroidmodulewizard-master (LAMW Manager v0.3.1). Non è questo? L'ho scaricato da GitHub, proprio seguendo i link che anche tu mi hai indicato. Cosa sto sbagliando?
Enrico.
-
A questo punto penso sia un discorso di compatibilità dell'esempio con la tua configurazione con lamw. Ti consiglio di provare a creare un nuovo progetto LAMW e provare a fare un semplice hello world. E vedi se funziona.
-
Ho disinstallato e reinstallato tutto e ora forse riesco a compilare. Dove posso trovare un esempio stupido per creare una finestra con un Button, caricarlo su Raspberry Pi3B+ con Android Lineage (ho anche Emteria) e accendere un LED facendo click sul Button? Il caricamento da PC Windows a Raspberry dovrebbe avvenire attraverso WiFi o ethernet.
Grazie.
Enrico.
-
Sfortunatamente non ho nessuna competenza con android su raspberry. Forse dovresti contattare l'utente che gestisce il componente LAMW sul forum internazionale e chiedere a lui. Io quando ho lavorato con i raspberry ho sempre usato raspbian come sistema operativo, installavo li sopra lazarus e compilavo nativamente per il dispositivo, e quando dovevo interagire con la pedinatura usavo script python (perchè si trovano già molti esempi scritti) che poi richiamavo come programmi esterni dalla mia applicazione.
-
Sto provando ad installare i pacchetti di LAMW ma come provo ad installare lazandroidwizardpack.lpk mi da:
Codice di uscita 2. Errori: 1 Fatal: No memory left.
Ho dato un'occhiata a vari post ma non ho trovato una soluzione sicura. Io uso un portatile HP con Windows 10 e processore Intel Core i7. Può trattarsi di impostazioni a livello di Windows?
Enrico.
-
Sto provando ad installare i pacchetti di LAMW ma come provo ad installare lazandroidwizardpack.lpk mi da:
Codice di uscita 2. Errori: 1 Fatal: No memory left.
Avevo capito che lo avevi giù installato, perchè nel messaggio precedente dicevi "Ho disinstallato e reinstallato tutto e ora forse riesco a compilare"
Mi sa che come prima cosa devi essere sicuro di aver installato tutto sul tuo computer. Io ti avevo suggerito di usare
LAMW Manager.
Poi provi a creare un esempio come nel video qui: https://www.youtube.com/watch?v=1BH460c9_Aw o qualsiasi altro video tutorial semplice che trovi su LAMW (ovviamente su youtube).
Domanda secca: sei costretto ad usare android sul raspberry? Altri sistemi operativi puoi usarli?
Se così non risolvi l'unica è chiedere aiuto all'utente jmpessoa sul forum internazionale, lui cura il progetto LAMW.
-
Infatti avevo detto "forse". In realtà sono venuti fuori vari errori forse dovuti a una confusione di moduli e versioni differenti. Farò un altro tentativo a breve e vedremo questa volta come andrà.
Enrico.
-
Finalmente sono riuscito a compilare un progettino per Android con solo una finestra e un pulsante.
Quando lo vado a caricare su Raspberry (regolarmente connesso in rete tramite ADB - Delphi vi accede tranquillamente sempre con lo stesso ADB) mi esce un errore con Gradle (versione 6.8, ma succede lo stesso con la 4.4.1).
Mi sembra che dovrebbe esserci qualche sezione del forum adeguata a queste problematiche. Quale potrebbe essere?
Enrico.
-
Finalmente sono riuscito a compilare un progettino per Android con solo una finestra e un pulsante.
Quando lo vado a caricare su Raspberry (regolarmente connesso in rete tramite ADB - Delphi vi accede tranquillamente sempre con lo stesso ADB) mi esce un errore con Gradle (versione 6.8, ma succede lo stesso con la 4.4.1).
Mi sembra che dovrebbe esserci qualche sezione del forum adeguata a queste problematiche. Quale potrebbe essere?
Enrico.
Quindi sei riuscito a compilare il file .apk e a trasferirlo sul raspberry?
Se è così e non funziona mi sa che dovrai farti aiutare da jmpessoa nel forum internazionale. E' lui l'esperto di android. Qui nella comunity italiana se nessun'altro ti ha risposto è perchè LAMW lo usano in pochi qui da noi. Come ti dicevo, io ho fatto alcuni test, ma non mi definisco un esperto.
La sezione c'è ed è la "Mobile".
-
Come ho accennato, io uso Delphi per compilare programmi in Pascal per Raspberry con Android e funziona tutto alla grande! L'unico neo è che in Delphi non hanno mai sviluppato né dato molta importanza alla questione degli I/O e non solo per Raspberry ma anche per USB, HDMI e Porte Seriali anche sotto Windows(chissà perché), costringendo gli interessati ad arrangiarsi in mille modi o ad installare pacchetti di terze parti molto spesso a pagamento.
Ma per Raspberry con Android è difficile trovare anche librerie a pagamento. Quelle free richiedono sempre la compilazione con Lazarus ed è per questo che l'ho installato. Voglio vedere come andrà a finire. Quando avrò raggiunto uno step sicuro racconterò "strali e colpi di balestra".
Ora però mi succede un fatto curioso (credo che sia solo una questione di settaggi su Lazarus): scrivo un programmino semplice con una finestra ed un pulsante, lo carico via ADB con ethernet sul Raspberry e lo vedo funzionare correttamente. Cambio il sorgente pascal ad esempio modificando il testo nel pulsante o il colore di sfondo della finestra, lo ricompilo lo ricarico e... ricompare sempre la vecchia versione! Anche disinstallando a mano sul rasp, chiudendo e riaprendo Lazarus riappare sempre la prima versione. Dove può essere l'inghippo? sicuramente in qualche settaggio.
Enrico.
-
Hai provato a vedere se prima e dopo la tua compilazione cambia la data di creazione/modifica del file che mandi al raspberry?
Io quando ho usato lazarus + lamw dovevo effettivamente compilare e mandare il file 2 volte di fila.
-
Non serve, a quanto pare ha preso a funzionare regolarmente e ogni modifica viene inviata puntualmente. Ora posso finalmente andare avanti a cercare di risolvere il problema principale.
Appena possibile posterò qualche risultato di interesse.
Grazie per l'assistenza.
Enrico.
-
Ho finalmente trovato il modo di eseguire comandi Android da pascal, ma mi manca un dettaglio fondamentale. La mia applicazione dovrebbe gestire i GPIO del Raspberry inviando comandi da Pascal direttamente ad Android, ma ovviamente il kernel risponde che l'applicazione non ha il permesso per eseguirli (però il comando arriva fino ad Android. Questa è già una vittoria!).
Ora il punto è proprio questo: come posso ottenere i privilegi di root alla mia applicazione? Modificando il file config.txt presente nella SDD card di Raspberry? Da pascal con comandi particolari? Ho cercato in giro ma non ci sono molte idee chiare al riguardo. Qualcuno ha mai risolto questo spinoso problema?
Enrico.
-
Bhe io penso (è solo una supposizione) che tu non debba acquisire per forza i privilegi di root (altrimenti dovresti roottare il dispositivo e la procedura cambia da dispositivo a dispositivo se non ho capito male), ritengo che tu debba settare i permessi per la singola applicazione e questo penso lo si faccia dalle configurazioni dell'interfaccia android. Ora io non ho idea di quali permessi vanno ad abilitare l'uso della GPIO perchè come dicevo non è molto frequente l'uso di android su raspberry. Di solito si preferisce usare raspbian, quindi sono quasi sicuro che dovrai confidare in san motore di ricerca oppure andare per tentativi.