Versuch mal nil statt @CodecSetup.OptionsDictionary, was anderes fällt mir nicht ein.
Ich habe festgestellt, dass die strings die ich übergeben habe, wenn PAnsichar erforderlich war, nicht ordentlich 0-terminiert sind.
Win32 fand das wohl nicht schlimm. Aber vielleicht trägt das zu den Android-Problemen bei. So habe ichs jetzt geändert:
Delphi-Quellcode:
bytes := TEncoding.UTF8.GetBytes(aString);
SetLength(bytes,Length(bytes)+1);
bytes[Length(bytes)-1]:=Byte(#0);
PAnsiChar(@bytes[0])
enthält dann den richtigen string. Wenn das irgendwie weniger "von hinten durch die Brust ins Auge" geht, wäre ich interessiert.
Zur Erklärung: Unter Android ist
PAnsiChar = MarshaledAString;