"Invalid Array Length" - Bug

  • Antworten:8
Arne
  • 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();
}

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

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. :) ;)

Antworten
swa00
  • Forum-Beiträge: 3.704

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 ]

Antworten
Arne
  • 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.

Antworten
Arne
  • 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.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

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. :) ;)

Antworten
swa00
  • Forum-Beiträge: 3.704

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 ]

Antworten
Arne
  • 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 ;-)

Antworten
Arne
  • 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

Antworten