"Invalid Array Length" - Bug

  • Antworten:8
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 41

15.10.2016 19:54:38 via Website

Hallo,

der folgende Code funktioniert leider nicht wie er soll. Kompilierung klappt, nach dem Einbinden bekomme ich jedoch die Fehlermeldung "Invalid Array Length". Leider wird mir die Zeilennummer nicht mitgeteilt, sodass ich spekulieren muss wo es hapert. Ich finde jedoch nichts verdächtiges. Hat jemand von Euch vielleicht eine Idee?

Danke schonmal...

public String ReceiveASCIIBytes(int length){
    byte[] bytes = new byte[length];
    try {
        BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
        bis.read(bytes, 0, length);
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
    }
    return bytes.toString();
}
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.308

15.10.2016 20:02:36 via App

Hallo Arne!
Hast du keinen ErrorLog via ADB?
Wenn doch dann poste diesen mal.

LG Pascal //It's not a bug, it's a feature. :) ;)

  • Forum-Beiträge: 2.214

15.10.2016 22:32:01 via Website

ich würde ggf. ein wenig Luft einbauen

byte[] bytes = new byte[length+ 1024];

und unten würde ich nochmal Abfangen

if (bytes.length() > 0)
return bytes.toString();
else
return null;

— geändert am 16.10.2016 00:25:46

Liebe Grüße - Stefan
[ App - Entwicklung ]

  • Forum-Beiträge: 41

16.10.2016 01:57:36 via Website

Hey Pascal,

Pascal P.

Hallo Arne!
Hast du keinen ErrorLog via ADB?
Wenn doch dann poste diesen mal.

Leider nicht, der AppInventor rückt den nicht her.

  • Forum-Beiträge: 41

16.10.2016 01:58:29 via Website

swa00

ich würde ggf. ein wenig Luft einbauen

byte[] bytes = new byte[length+ 1024];

und unten würde ich nochmal Abfangen

if (bytes.length() > 0)
return bytes.toString();
else
return null;

Hey Stefan,

danke, hat aber leider beides nicht geholfen.

Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 9.308

16.10.2016 08:31:59 via App

Wie testest du deine App?
Kannst ja einfach mal Gerät per Usb anschließen und in AS die App verbinden und dann starten. Davon solltest du dann den Log sehen.
Gibt es kein Programm für den AppInventor mit dem man leicht debuggen kann? Kann ich mir nucht vorstellen das es das nicht gibt..

LG Pascal //It's not a bug, it's a feature. :) ;)

  • Forum-Beiträge: 2.214

16.10.2016 09:26:35 via Website

Kein Wunder , dass da nichts Dolles rauskommen kann , wenn die schon bei sowas scheitern.
(Nicht du Arne :-)

Dann bastel dir mal ein eigenes Log.

public String ReceiveASCIIBytes(int length)
{
Log.d("Arne","Step 0: " +String.format("%d",length));
byte[] bytes = new byte[length];
if ( bytes != null) Log.d("Arne","Step 1: " +bytes.toString());
try
{
BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
if ( bis != null) Log.d("Arne","Step 2: " +bis.toString());
int readed = bis.read(bytes, 0, length);
Log.d("Arne","Step 3: " +String.format("%d",readed));
} catch (IOException e)
{
Log.d("Arne","Step 4: " +e.toString());
e.printStackTrace();
} finally {
}
return bytes.toString();
}

— geändert am 16.10.2016 09:41:11

Liebe Grüße - Stefan
[ App - Entwicklung ]

  • Forum-Beiträge: 41

17.10.2016 01:13:57 via Website

Arne Mailand

swa00

ich würde ggf. ein wenig Luft einbauen

byte[] bytes = new byte[length+ 1024];

und unten würde ich nochmal Abfangen

if (bytes.length() > 0)
return bytes.toString();
else
return null;

Hey Stefan,

danke, hat aber leider beides nicht geholfen.

Also AppInventor ist ein Online-Web-Builder. Der gibt leider nichts raus, außer die Möglichkeit, den Bug-Report zu senden, damit die Mitarbeiter daraus lernen können ;-)

  • Forum-Beiträge: 41

17.10.2016 01:20:00 via Website

Hey, danke.

Der Log wird nichts nützen, weil ich leider nichteinmal soweit komme dass ich den Code auf das Handy bringen kann. Die Installation auf das Handy wird vom AI vorgenommen, und der ist derjenige, der streikt.

Ich weiß, AS kann mehr und besser, und mit dem hätte ich wahrscheinlich das Problem nicht, aber ich muss es leider mit dem AI hinbekommen.

Aber nun gut, ihr seid kein Support vom AI. Ich wollte im Grunde nur wissen, wo ihr vielleicht die Stelle vermuten würdet, die den AI vom Hocker schmeißt.

Aufjeden Fall danke für eure Anteilnahme