[fpc-pascal] Android and cwstring
    Torsten Bonde Christiansen 
    tc at epidata.info
       
    Wed Jul 31 15:11:15 CEST 2013
    
    
  
Hi,
I'm trying to create a library for use in an android application, but 
i'm having a hard time getting it to work correctly.
More specifically i cannot get the library to use the "cwstring" unit. 
Below you see a working example of a library that works fine (the log 
entry is generated) when cwstring i commented out, but when included the 
android application just hangs on the message:
07-31 16:52:16.284: D/dalvikvm(338): Trying to load lib 
/data/data/dk.epidata.epidatatestproject/lib/libepitest.so 0x45f3e268
The error is most likely mine, my experience with android programming 
and libraries are limited, but I fail to see what I am doing wrong in 
this case.
Just for record i use:
torsten at Rainier:~$ ppcrossarm -i
Free Pascal Compiler version 2.7.1
Compiler Date      : 2013/07/25
Compiler CPU Target: arm
Settings for android in .fpc.cfg:
-CfVFPV3
#ifdef cpuarm
-Xd
-FD/home/torsten/AndroidDev/android-ndk-r8e/toolchains/arm-linux-androideabi-4.7/prebuilt/linux-x86_64/bin
-Fl/home/torsten/AndroidDev/android-ndk-r8e/platforms/android-14/arch-arm/usr/lib
-XParm-linux-androideabi-
#endif
Regards,
Torsten B. Christiansen.
====== library code ======
library project1;
{$mode objfpc}{$H+}
uses
   jni,      // jni from packages/jni/src/jni.pas
   cmem,     // includin  cmem makes no difference
   cwstring  // including cwstring make the library halt on load... :(
   ;
const
   ANDROID_LOG_INFO=4;
function LOGI(prio:longint;tag,text:pchar):longint; cdecl; varargs; 
external 'liblog.so' name '__android_log_print';
function JNI_OnLoad(vm:PJavaVM;reserved:pointer):jint; cdecl;
begin
   result:=JNI_VERSION_1_6;
end;
exports
   JNI_OnLoad;
begin
   LOGI(ANDROID_LOG_INFO, 'libepitest.so', 'Init Library');
end.
    
    
More information about the fpc-pascal
mailing list