Italian Errore a me inspiegabile)

AlpVir

Well-Known Member
Licensed User
Longtime User
Il titolo del post non è il massimo ma ... è quello che (mi) succede.
Da due giorni sono bloccato di fronte ad un errore apparentemente banale, ma che mi impedisce di compilare e proseguire. Questo è uno spezzone di codice in Activity_Create (non in FirstTime ma anche se lo fosse non cambierebbe niente).

Istruz.jpg


La compilazione di ferma alla riga 450. Le righe 439-442 sono funzionalmente identiche alle 444-453. Se elimino le righe 444-453 la compilazione si arresta in un altro punto del programma, altrettando assurdo come questo.
Il messaggio di errore che appare nella finestra "Compile & Debug" è il seguente :
B4A version: 7.00
Parsing code. (0.10s)
Compiling code. Error
Error compiling program.
Error description: Riferimento a un oggetto non impostato su un'istanza di oggetto.
Occurred on line: 450
LbTipoPanorama.Text="PANORAMI HD DEL SITO DE L ALPINISTA VIRTUALE"
Del resto un tooltip "Riferimento a un oggetto non impostato su un'istanza di oggetto" appare in corrispondenza della famigerata riga 450.
Preciso che in Globals c'è "Dim LbTipoPanorama As Label" mentre in Process_Globals c'è "Dim TipoPanorami As String"
Nel tentativo, finora non riuscito, di venire a capo alla faccenda ho eliminato le numerose altre activity e, credo, le ho studiate tutte. Ho anche fatto un "clean project". Ho eliminato l'articolo nel testo fra virgolette. Ho messo in REM il codice in Activity_Resume. Ho ....
Mi domando anche: perchè si ferma alla linea 450 e non prima, alla 448 o 446.
Inutile dire che una volta questo codice funzionava, da anni.
Ogni suggerimento è oltremodo gradito.
 

LucaMs

Expert
Licensed User
Longtime User
Mi pare di aver già letto cose del genere ma, non essendo mai capitato a me e dovendo conservare i miei 2 KB di memoria cerebrale per tutto il resto, non ricordo la soluzione (sempre se la Lassie :)).

PEEEEEROOOO'...

Mi spiace che tu non l'abbia scritto due giorni fà, perché probabilmente la soluzione è ricreare il progetto, importarvi tutti i moduli, eliminare tutto il codice nella Main del nuovo progetto ed incollarvi quello del progetto non funzionante.


P.S. Magari, prima ci incollare il codice dalla Main alla Main, elimina la famigerata riga 450, che reinserirai a manina in seguito.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Ho cercato nel forum "inglese" ma l'unica cosa SOLTANTO SIMILE che ho trovato riguardava un file di layout.
Magari, se vuoi scoprire il problema, potresti provare anche a ricreare quello, prima di creare un nuovo progetto come detto nel post preDecente.
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Non utilizzo file di layout *.bal
L'activity principale è di più di 2000 righe.
L'altro punto (rispondo a MarcoRome) è la penultima riga del codice seguente

B4X:
    For L=1 To 8
        BotLettera(L).Initialize ("BotLettera")
        PanelZero .AddView (BotLettera(L),2dip,(L-1)*(11.5%y)+3dip,34dip,30dip)
        S= Chr(65+(L-1)*3)
        BotLettera(L).Text = S
        BotLettera(L).Tag = S
        BotLettera(L).Typeface=Typeface.DEFAULT_BOLD
        BotLettera(L).TextSize = 11
        BotLettera(L).Background = FunzioniComuni.ButtonGradient(Array As Int(Colors.RGB(186, 237, 255), Colors.RGB(100,100,255)))
        BotLettera(L).TextColor = Colors.black
    Next

L'errore è Object should first be initialized (RadioButton).
Inutile dire che c'è una Dim BotLettera(10) as Button
Ma penso che sia inutile mettere troppa carne al fuoco, ad esempio segnalare che il messaggio di errore indica un RadioButton mentre invece BotLettera è un Button.
Inoltre - dico io - perchè viene segnalato che BotLettera(L) (con L che vale 9) non è inizializzato proprio in quel punto ? Non poteva (e ne aveva la possibilità) di farlo prima ?
Stesso discorso del mio primo post: perche l'errore alla riga 450 e non alla precedente 448 o 446 ?
Che si sia incasinato B4A ?
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Forse ho trovato: una mia precedente app semplice semplice l'ho ricompilata senza problema. Altre 2 no: entrambe avevano le librerie HTTP e HTTPUtils.
 

LucaMs

Expert
Licensed User
Longtime User
Allora prova a sostituirle con okhttp e okhttputils2
Ora che ci penso, io sto compilando una mia app con la versione precedente di b4a, la 6.80, perché con la 7 ottengo un errore che suppongo sia dovuto ad una mia libreria, che dovrei ricompilare con la 7. Forse l'errore era anch'esso incomprensibile; fò una provola e... aggiorno questo post...

P.S.
A quanto pare non era in fase di compilazione, ergo non dovrebbe entrarci un tubero.
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Disintallato B4A e reinstallato.
Eliminato tutto il codice che fa riferimento a HTTP e okhttp
Cambiato il path di android.jar da
C:\Android\platforms\android-25\android.jar
a
C:\Android\platforms\android-21\android.jar
Okttputils2 non lo uso; mi sembra che erel dica che è compreso nell'IDE.

Stesso errore alla linea LbTipoPanorama.Text="PANORAMI HD DEL SITO DE L ALPINISTA VIRTUALE"
 

MarcoRome

Expert
Licensed User
Longtime User
Hai provato a commentare parte ( gran parte ) del codice e ricompilare ?
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Penso che dovro' commentare TUTTO il codice, eliminare tutte le librerie, e poi con pazienza certosina decommentare pian pianino spezzoni di codice, aggiungendo a mano a mano le librerie necessarie.
il dubbio, così facendo, è che ci sia nascosto nel file NomeApp.b4a qualcosa di bacato.
L'ideale sarebbe partire da zero con un progetto nuovo e, nello stesso schermo, quello vecchio. Quindi fare diecimila operazioni di copia ed incolla. Povero me !
Non escludendo il file manifest.
Inoltre dovrei ricaricare gli originali di alcune librerie (in particolare HTTP e okhttp).
 

LucaMs

Expert
Licensed User
Longtime User
Quindi fare diecimila operazioni di copia ed incolla
Mi sa che non hai letto il mio primo post, ovvero il secondo assoluto di questo thread.
Non è necessario che tu faccia copia e incolla di ogni modulo o, peggio, di parti di modulo; rileggi bene.

D'altra parte, non è la prima vollta che rimango deluso nel tentativo di darti una mano, quindi questa è assolutamente l'ultima.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Ciao Ugo,
di sicuro dico una scemenza, ma guardando il codice vedo che alla riga n. 446 L'ALPINISTA è scritto correttamente, mentre nella riga 450 manca l'apice, e può essere forse che al posto dell'apice ci sia un carattere non visibile a video ma che il compilatore non supporta.
Prova a cancellare completamente la riga 450, fai copia-incolla della riga 446 aggiungendo poi la scritta "HD"
(se guardi la riga 441 infatti vedi che lì l'apice lo hai messo correttamente, ecco perchè funziona)

Sergio
 
Last edited:

AlpVir

Well-Known Member
Licensed User
Longtime User
@LucaMs: ed è la seconda volta che rilasci i tuoi consigli (inframmezzati da battute da ragazzino di terza media; evitale e assumi un atteggiamento consono alla tua età ed al fatto che scrivi in un forum tecnico) senza tener conto che essi (o meglio le operazioni ad essere connesse) sono già state messe in atto perchè del tutto logiche ed evidenti per chi programma in questo ambiente da svariati anni.
Se non ho risposto puntualmente al tuo post (o se ti sei offeso perchè non ti ho dato un like) è solamente per non tediare chi ci segue con inutili ripetizioni.
Mi scuso anticipatamente con tutti per quest post un po' "polemico" (non è nel mio stile) ma ... quando ce vo ce vo.
Chiuso l'incidente !
 

AlpVir

Well-Known Member
Licensed User
Longtime User
@sirjo: Non dici affatto una scemenza. Avevo notato anch'io la presenza di questo apice che in certi ambiti (ad esempio le query SQL) provoca dei guai. Ho provato a toglierlo ma ... nulla.
 

LucaMs

Expert
Licensed User
Longtime User
è la seconda volta che rilasci i tuoi consigli
senza tener conto che essi (o meglio le operazioni ad essere connesse) sono già state messe in atto perchè del tutto logiche ed evidenti per chi programma in questo ambiente da svariati anni.
Innanzitutto sarebbe buona educazione, visto che vuoi essere formale, informare chi ti ha suggerito qualcosa che la tal cosa sia da te già stata tentata ed abbia avuto esito negativo.

In secondo luogo, dato che non poche volte hai pubblicato domande da 3a elementare informatica, sicuramente è meglio non dare per scontato che si siano eseguiti per primi i tentativi più logici (inoltre, questa tua frase:
Quindi fare diecimila operazioni di copia ed incolla. Povero me !
dimostra che non hai affatto tentato la strada logica e sempliciotta che ti avevo suggerito; dimostra che non l'hai nemmeno capita).

Riguardo il fatto che io inserisca battute all'interno di commenti / suggerimenti tecnici sono certo che non infastidiscano alcuno, tranne forse qualche presuntuoso bacchettone, e forse possono alleviare un po' le giornate pesanti che tutti, più o meno, stiamo vivendo. Se anche mi sbagliassi, continuerei a farlo ugualmente, non mi faccio dire da alcuna persona come io debba fare le mie cose, tantomeno da chi non stimo affatto.

Adesso considero chiuso l'argomento, non prima!
 
Last edited:
D

Deleted member 103

Guest
Alcune volte, come è già capitato a me, non ha niente a che fare l'errore con il tuo codice, ma bensì con qualche libreria.
Prova a disattivare ad una ad una le librerie.
 

AlpVir

Well-Known Member
Licensed User
Longtime User
L'errore capita con una normalissima label che fa parte della struttura primaria di B4A. Non credo che si tratti di una libreria e comunque sto continuando nei tentativi (chè di tentativi si tratta) per venirne a capo.
Molto molto molto sospetta è la presenta di un cerchietto a lato della scritta "Sub Activity_Create(FirstTime As Boolean)" (vedi la foto di pessima qualità) con un tooltip "Resumable Sub". Tale icona non si presenta in nessuna delle altre app da me scritte.

Resumable.jpg


Allora ho esaminato, con Blocco Note, il file NomeProgetto.b4a.meta ed anche NomeProgetto.b4a ma non ho notato nulla che abbia insospettito.
 
Top