-
Üyelik
13.06.2019
-
Yaş/Cinsiyet
42 / E
-
Meslek
Serbest
-
Konum
İstanbul Anadolu
-
Ad Soyad
C** E**
-
Mesajlar
367
-
Beğeniler
69 / 147
-
Ticaret
0, (%0)
arkadaşlar bir uygulamam var android 9 da çalışıyor ancak 10da kapanıyor.
java.lang.ArrayIndexOutOfBoundsException length=5; index=5
hatasını alıyorum. yani normal şartlarda bana 5 rakam var ama 6 istiyorsun tarzında bir mesaj veriyor. lakin neden 9 da bu kod çalışırken 10 da hata veriyor?
for(int i=0; i<6; i++) {
şöyle bir döngüde var. normalde 5 haneli. (hata gösterdiği yerde burası crashliticsde)
burayı
for(int i=0; i=4; i++) {
şeklinde düzeltip denemeyide düşünüyorum ki sanırım zaten sorunda burada.
şimdi üstadlardan beklentim şu;
yapacağım değişim sorunumu çözer mi?
İmkansız olduğunu düşünürsen hiç birşey başaramazsın.
-
Üyelik
16.01.2016
-
Yaş/Cinsiyet
27 / E
-
Meslek
Öğrenci , Android Developer
-
Konum
Muğla
-
Ad Soyad
E** Ş**
-
Mesajlar
433
-
Beğeniler
45 / 93
-
Ticaret
3, (%100)
döngü çalışmaz. çünkü i'yi 0 olarak tanımlamışsınız ve 4 ise döngünün çalışmasını istiyorsunuz. bu mümkün değil
Profesyonel Android uygulama yazımı.
sae
WM Aracı
Kullanıcı
-
Üyelik
22.07.2020
-
Yaş/Cinsiyet
39 / E
-
Meslek
Teknisyen
-
Konum
İstanbul Avrupa
-
Ad Soyad
M** V**
-
Mesajlar
14
-
Beğeniler
2 / 1
-
Ticaret
0, (%0)
İfade ediliş biçimleri değişebiliyor fakat algoritma temellerinin değişmemesi lazım, Acaba sorunun Android 9 veya 10 olması değilde , random'da Android 9 da ufak değer geldiği için hatayı es geçiyor olabilr mi?
-
Üyelik
13.06.2019
-
Yaş/Cinsiyet
42 / E
-
Meslek
Serbest
-
Konum
İstanbul Anadolu
-
Ad Soyad
C** E**
-
Mesajlar
367
-
Beğeniler
69 / 147
-
Ticaret
0, (%0)
for(int i=0; i<6; i++) {
şu döngü normal şartlarda array için sayı seçiyor. 1-5 dahil arasındaki sayılar.
ama tabi bu döngüde 0-6 arası olunca 5 değil 6 sayı olmuş oluyor. <6 olması sebebiyle. Çok enteresan şekilde kod hata vermeden 9 da çalışıyor. ancak 10 da çalışmıyor. ve şu da var ki ben bunu düşündüğümün aksine 5 kez çevirmesi için 0-5 mi yapmalıyım 0-4 mü. yani 0-6 da çalışmasıda çok enteresan.
charArray = new ArrayList();
String[] chArr = wordStr.split("");
for(int i=0; i<6; i++) { // hatalı satır.
String c = chArr[i];
charArray.add(c);
}
charArray.remove(0);
Log.i("log-", "CHARS ARRAY: " + charArray);
// Get Random characthers function
getRandomChar();
}
en basit haliyle bu.
yani bi yanlışanlama oldu sanırım yazımda. for döngüsü olduğu için 0 dan başlayabilir. kodu tam yazayımda yanlış anlaşılma olmasın :)
İmkansız olduğunu düşünürsen hiç birşey başaramazsın.
-
Üyelik
16.01.2016
-
Yaş/Cinsiyet
27 / E
-
Meslek
Öğrenci , Android Developer
-
Konum
Muğla
-
Ad Soyad
E** Ş**
-
Mesajlar
433
-
Beğeniler
45 / 93
-
Ticaret
3, (%100)
AzveNet adlı üyeden alıntı
for(int i=0; i<6; i++) {
şu döngü normal şartlarda array için sayı seçiyor. 1-5 dahil arasındaki sayılar.
ama tabi bu döngüde 0-6 arası olunca 5 değil 6 sayı olmuş oluyor. <6 olması sebebiyle. Çok enteresan şekilde kod hata vermeden 9 da çalışıyor. ancak 10 da çalışmıyor. ve şu da var ki ben bunu düşündüğümün aksine 5 kez çevirmesi için 0-5 mi yapmalıyım 0-4 mü. yani 0-6 da çalışmasıda çok enteresan.
en basit haliyle bu.
yani bi yanlışanlama oldu sanırım yazımda. for döngüsü olduğu için 0 dan başlayabilir. kodu tam yazayımda yanlış anlaşılma olmasın :)
sanırım sorunu anladım. i=0 , i<5 yaparsanız 0,1,2,3,4 için döndürür yani 5 defa. ondan dolayı buna göre aralık belirlemeniz gerekiyor.
9 ve 10 arasındaki çalışmama sorununa gelecek olursak ilginç. ama son zamanlarda yazdığım ve test ettiğim birçok uygulamada 10 sürümünde bir şeylerin değiştiğini farkettim. 10 dan itibaren çok köklü değişimlere başladılar. her kullanacağım şey için dökümantasyonu okuyorum artık. kolay gelsin
Profesyonel Android uygulama yazımı.
-
Üyelik
21.03.2020
-
Yaş/Cinsiyet
35 / E
-
Meslek
Yazılım
-
Konum
İzmir
-
Ad Soyad
F** K**
-
Mesajlar
530
-
Beğeniler
328 / 197
-
Ticaret
0, (%0)
i<=4 olarak kullanmanız gerek
-
Üyelik
13.06.2019
-
Yaş/Cinsiyet
42 / E
-
Meslek
Serbest
-
Konum
İstanbul Anadolu
-
Ad Soyad
C** E**
-
Mesajlar
367
-
Beğeniler
69 / 147
-
Ticaret
0, (%0)
Log.i("log-",......);
dışında çözüm olmadı.
i<=4 te denemiştim i=4 te i<5 te.. bu arada 5 hane var fakat çektiğim 6 hane idi. o yüzden ben i<6 kullandım for döngüsünde. ama sonuç itibariyle bu şekilde bile android 10 da log.i olmadan kapanıyordu.
yardımcı olmaya çalışan arkadaşlara teşekkür ederim. eğer ihtiyacı olan, benzer sorunla karşılaşan olursa bu şekilde sanırım aşabilir. en azından denemesinde fayda var :)
İmkansız olduğunu düşünürsen hiç birşey başaramazsın.
-
Üyelik
11.10.2020
-
Yaş/Cinsiyet
25 / E
-
Meslek
Mobil Uygulama Geliştiricisi
-
Konum
Çanakkale
-
Ad Soyad
E** M**
-
Mesajlar
11
-
Beğeniler
6 / 1
-
Ticaret
0, (%0)
Selamlar, lütfen aldığınız hata da use-case belirtin ki alternatif çözüm yolu önerebilelim, tam olarak ne yapmaya çalıştığınızı anlamadım fakat belli bir aralıtka random sayı türetebilmek için;
Java:
```
int randomNumber = new Random().nextInt(6); // 0 ile 6 arasında rastgele bir sayı; 0,1,2,3,4 veya 5
```
Kotlin:
```
val randomNumber = (2 until 6).random() // 2 ile 6 arasında rastgele bir sayı; 2,3, 4 veya 5
//veya
val randomNumber = (2..6).random() // 2 ile 7 arasında rastgele bir sayı; 2,3,4,5 veya 6
```