[fpc-pascal] android JNI JString to String

Ludo Brands ludo.brands at free.fr
Tue Apr 26 13:58:03 CEST 2011


Pchar(Chars) interpretes your widechars as chars. The widechar e is
converted to the chars e and #0. The #0 is end of line for a pchar. So your
debug output is as expected. 

Take a look at
http://groups.google.com/group/android-ndk/browse_thread/thread/e0ab7aefb398
2c45. It talks about the same problem calling GetStringChars from C. The
function returns non null terminated utf16 data.

You could also go the hard way, something along the lines of:
  Chars := Env^.GetStringChars(Env, JStr, @IsCopy);
  if (Chars = nil) then begin
    Result := ''
  end else begin
    len:=Env^.GetStringLength(Env, JStr);
    setlength(Result,len);
    move(Chars,Result[1],len*2);
    Env^.ReleaseStringChars(Env, JStr, Chars);
  end;



-----Message d'origine-----
De : fpc-pascal-bounces at lists.freepascal.org
[mailto:fpc-pascal-bounces at lists.freepascal.org] De la part de herux
Envoyé : mardi 26 avril 2011 13:06
À : fpc-pascal at lists.freepascal.org
Objet : Re: RE : [fpc-pascal] android JNI JString to String


thanks for the response.

I am doing what you suggest. but it's still the same.

I debug this line of code using android log

Chars := Env^.GetStringChars(Env, AJString, nil);
__android_log_write(ANDROID_LOG_DEBUG,'proj_debug',PChar(Chars)); 

and the log I retrieved :

04-26 17:53:17.942: DEBUG/proj_debug(711): e <--- only "e" character

from input AJString =
eNp9zt0KwjAMBeBXCecBrApeCEmG+iRzdrX+dKMrMn16Y0G8M5Cr75ATbub7jR4+T3FIgtViiUa5
VS5xGPsfrA2c8lG5o5NghrJX7ikInqCzYCo5pgCKgq3NJ1x1+KuvqjEVH3yuXGuc3b4oX2knAO2t
fgM6fNHEdbb2jGv1DUfmNOA=

so I thought, this is not about that. but I do not know why



-----
-
--
View this message in context:
http://free-pascal-general.1045716.n5.nabble.com/android-JNI-JString-to-Stri
ng-tp4340388p4340649.html
Sent from the Free Pascal - General mailing list archive at Nabble.com.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal




More information about the fpc-pascal mailing list