-
1. Data: 2011-02-07 06:11:11
Temat: Android
Od: "Lelek@" <n...@n...pl>
Witam,
Nie wnikając w szczegóły, napisałem pierwszy program ale doszedłem do
miejsca gdzie się wszystko kompiluje ale po uruchomieniu aplikacja zamyka mi
się przez jedną linijke kodu.
Jest to java oczywiście.
jest sobie zadeklarowany bufor bajtowy
byte buf[] = new byte[256];
I chcę sobie z niego odczytać cokolwiek robiąc casting czy tam nawet bez
niego
int X = (int)buf[0];
lub bez
byte Y = buf[2];
i dokładnie taka linijka w kodzie wywala mi cały program. "Program przestał
działać czy go zamknąć na siłę" takie okienko wyskakuje ale kompiluje sie
ok.
Nie mam pomysłu :-) Pomocy :-) Tylko ta linijka. może czegoś nie wolno mi
robić na bajtowych buforach o czym nie wiem? Zapisuje do niego inną metodą,
umiem z niego odczytywać przy pomocy setText(), dane są w buforze prawidłowe
ale muszę go czasem przelecieć w pętli i czegoś poszukać i nie mogę :-)
-
2. Data: 2011-02-07 07:26:16
Temat: Re: Android
Od: "Artur M. Piwko" <m...@b...pl>
In the darkest hour on Mon, 7 Feb 2011 07:11:11 +0100,
Lelek@ <n...@n...pl> screamed:
> Nie wnikając w szczegóły, napisałem pierwszy program ale doszedłem do
> miejsca gdzie się wszystko kompiluje ale po uruchomieniu aplikacja zamyka mi
> się przez jedną linijke kodu.
> Jest to java oczywiście.
>
> jest sobie zadeklarowany bufor bajtowy
>
> byte buf[] = new byte[256];
>
Tak na szybko...
byte[] buf = ...?
--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:222B ]
[ 08:25:58 user up 12706 days, 20:20, 1 user, load average: 0.69, 0.01, 0.59 ]
Baroque (adj.): When you are out of Monet.
-
3. Data: 2011-02-07 08:45:09
Temat: Re: Android
Od: Shaman <s...@o...com>
Dnia 07-02-2011 o 08:26:16 Artur M. Piwko <m...@b...pl>
napisał(a):
> In the darkest hour on Mon, 7 Feb 2011 07:11:11 +0100,
> Lelek@ <n...@n...pl> screamed:
>> Nie wnikając w szczegóły, napisałem pierwszy program ale doszedłem do
>> miejsca gdzie się wszystko kompiluje ale po uruchomieniu aplikacja
>> zamyka mi
>> się przez jedną linijke kodu.
>> Jest to java oczywiście.
>>
>> jest sobie zadeklarowany bufor bajtowy
>>
>> byte buf[] = new byte[256];
>>
>
> Tak na szybko...
>
> byte[] buf = ...?
Też jestem zwolennikiem takiego zapisu, ale to raczej nie może być
przyczyną problemów.
Proponuję:
1. sprawdzić jak zachowuje się odczyt z tablicy deklarowanej statycznie
jaki private.
2. czyścić/zerować tablicę tworzoną dynamicznie przed jej odczytem
3. używać normalnego słownictwa bo aż człowieka skręca czyta "casting"
zamiast "rzutowanie"
zaznaczam, że nie znam androidowego SDK ani ichniejszej maszyny
wirtualnej, to są jedynie luźne pomysły (za wyjątkiem pkt3 :))
--
PZDR
Shaman
-
4. Data: 2011-02-07 11:39:30
Temat: Re: Android
Od: "Lelek@" <n...@n...pl>
"Shaman" <s...@o...com> wrote in message news:op.vqiyljhl4limig@sioux...
Dnia 07-02-2011 o 08:26:16 Artur M. Piwko <m...@b...pl>
Już wiem co jest.
Ten bufor nie istnieje jeżeli nic się tam nie wpisze i próba odczytu buf[0]
bez wcześniejszego wpisania czegoś skutkuje totalną wywałką tak jakby
wyskakiwał wyjątek nie wiadomo od czego. To jest java, a nie C++ co mnie
bardzo denerwuje, szczególnie brak "unsigned" - to jest już totalna porażka.
Ta java to takie C++ dla półgłówków, którzy mieli problem ze zrozumieniem
wskaźników, struktur i wykonywania kodu :-) Tragedia ale nie ma wyjścia.
-
5. Data: 2011-02-07 11:47:03
Temat: Re: Android
Od: J.F. <j...@p...onet.pl>
On Mon, 07 Feb 2011 09:45:09 +0100, Shaman wrote:
>3. używać normalnego słownictwa bo aż człowieka skręca czyta "casting"
>zamiast "rzutowanie"
Rzutowanie to rzutowanie, wymienic odpowiedzialnych autorow ktorzy
zastosowali do C :)
P.S. Casting ? Odlewanie. I nie mamy na mysli egzaminu dla aktorek :-)
J.
-
6. Data: 2011-02-07 12:18:07
Temat: Re: Android
Od: Zbych <a...@o...pl>
W dniu 2011-02-07 12:39, Lelek@ pisze:
> Ten bufor nie istnieje jeżeli nic się tam nie wpisze i próba odczytu
> buf[0] bez wcześniejszego wpisania czegoś skutkuje totalną wywałką tak
> jakby wyskakiwał wyjątek nie wiadomo od czego.
Pewnie wynika to z optymalizacji - alokacja zasobów dopiero przy
pierwszym dostępie. W sumie niezły bat na "specjalistów" od
niezainicjalizowanych zmiennych :-).
-
7. Data: 2011-02-07 14:06:15
Temat: Re: Android
Od: Mikołaj Tutak <"mtutak[a]nixz*net"@nospam.com>
W dniu 2011-02-07 07:11, Lelek@ pisze:
>
> byte buf[] = new byte[256];
>
> I chcę sobie z niego odczytać cokolwiek robiąc casting czy tam nawet bez
> niego
>
> int X = (int)buf[0];
int X = (int)buf;
lub
int X = (int)&(buf[0]);
>
> lub bez
>
> byte Y = buf[2];
byte Y = (byte)(buf+2);
tak lepiej?
--
pozdrawiam
Mikołaj
-
8. Data: 2011-02-07 17:28:04
Temat: Re: Android
Od: ohouapss <k...@g...com>
On 7 Lut, 12:39, "Lelek@" <n...@n...pl> wrote:
> Już wiem co jest.
> Ten bufor nie istnieje jeżeli nic się tam nie wpisze i próba odczytu buf[0]
> bez wcześniejszego wpisania czegoś skutkuje totalną wywałką
Nie znam sdk Androida, ale dolary przeciw kamieniom, że błąd jest
zupełnie gdzie indziej niż Ci się wydaje. Ta tablica powinna się
automatycznie wypełnić zerami i jak najbardziej bufor istnieje.
-
9. Data: 2011-02-07 22:15:57
Temat: Re: Android
Od: Adam Dybkowski <a...@4...pl>
W dniu 2011-02-07 07:11 Lelek@ napisał(a):
> Nie wnikając w szczegóły, napisałem pierwszy program ale doszedłem do
> miejsca gdzie się wszystko kompiluje ale po uruchomieniu aplikacja
> zamyka mi
> się przez jedną linijke kodu.
[...]
Zobacz co pokazuje LogCat. Tam będzie informacja dlaczego program się
wywalił.
BTW: NTG?
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
10. Data: 2011-02-07 23:16:19
Temat: Re: Android
Od: "Lelek@" <n...@n...pl>
"Adam Dybkowski" <a...@4...pl> wrote in message
news:iipqur$fq$2@news.onet.pl...
>W dniu 2011-02-07 07:11 Lelek@ napisał(a):
> Zobacz co pokazuje LogCat. Tam będzie informacja dlaczego program się
> wywalił.
Nie wiem co to jest LogCat :-) Od kilku dni się tym zajmuję :-).
Wiem jedno, że ten buf[256] zapełniam wpisując w niego null terminated
string. I jeżeli czytam poza długością wpisanego stringa to zawsze jest ten
efekt ale dziwi mnie czemu mimo zadeklarowania rozmiaru on tak to traktuje.
To zachowanie ma miejsce tylko dla byte. dla int tablica istnieje.
Obszedłem to ale weź sobie zapodaj w kodzie takie dwie linijki, jedna
deklaracja i niżej Y = buf[10] i skompiluj i uruchom. Wywałka murowana
gdziekolwiek nie postawisz byle się wykonało.