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-boun...@lists.freepascal.org
[mailto:fpc-pascal-boun...@lists.freepascal.org] De la part de herux
Envoyé : mardi 26 avril 2011 13:06
À : fpc-pascal@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@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to