android jini reguest and response lazarus / 43-Android ---------------------------------------------------------------------- zeljkoc · 2013-03-17 21:23 if you can help out send HTML  code and read the answer request  (nativetest.pas) and response (webpage.java) function strFromJNI(env:PJNIEnv; this:jobject): string; cdecl; begin  // Result := 'Hello, world! '); end; nativetest.pas Code: [Select]library nativetest; {$mode delphi} uses jni; const curVM:JClass=nil; function strFromJNI(env:PJNIEnv; this:jobject): string; cdecl; begin  // Result := 'Hello, world! '); end; function JNI_OnLoad(vm:PJavaVM;reserved:pointer):jint; cdecl; begin   curVM:=vm;   result:=JNI_VERSION_1_6; end; procedure JNI_OnUnload(vm:PJavaVM;reserved:pointer); cdecl; begin end; exports   JNI_OnLoad name 'JNI_OnLoad',   JNI_OnUnload name 'JNI_OnUnload',   strFromJNI name 'Java_com_pascal_systeminfo_webpage_strFromJNI'; begin end. webpage.java Code: [Select]package com.pascal.systeminfo; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; import java.util.Date; public class webpage extends Activity {   WebView browser;   @Override   public void onCreate(Bundle icicle) {     super.onCreate(icicle);     setContentView(R.layout.main);     browser=(WebView)findViewById(R.id.webkit);     browser.loadData("Hello, world! ",               "text/html", "UTF-8");   }   /** ------------------------------- */   public long nativeCodeLoaded=0;     static {     try {     System.loadLibrary("nativetest");     } catch(UnsatisfiedLinkError ule) {             ule.printStackTrace();         }     } } ---------------------------------------------------------------------- felipemdc · 2013-03-20 07:20 JNI does not use Pascal strings, also not PChar's. You need to create JNI Strings with the method env^.NewStringUTF See this JNI example here: http://lazarus- ccr.svn.sourceforge.net/viewvc/lazarus-ccr/bindings/android- ndk/examples/jnitest/jni/nativetest.pas?revision=2167&view=markup ---------------------------------------------------------------------- zeljkoc · 2013-03-20 08:11 thanks felipemdc translation examples  I just managed with FPC-2.5.1 (laz4android) JNI example can to work only with FPC-2.5.1 what to do to  it works lazaurs-1.1 FPC-2.7.1 or (I install: WinXp 32, Lazarus BigIDE, arm-android how to work with CodeTyphon 4.10) in order to could do with a Stream? library nativetest; {$mode delphi} uses jni; const curVM:JClass=nil; function strFromJNI(env:PJNIEnv; this:jobject): JString; cdecl; var Str: string; begin Str := 'Hello, world! '; Result := PEnv^.NewStringUTF(PEnv, PChar(Str)); end; exports strFromJNI name 'Java_com_pascal_systeminfo_webpage_strFromJNI'; begin end.package com.pascal.systeminfo; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; import java.util.Date; public class webpage extends Activity { WebView browser; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); browser=(WebView)findViewById(R.id.webkit); try { browser.loadData(strFromJNI(),"text/html", null); } catch(UnsatisfiedLinkError ule) { ule.printStackTrace(); } } } /** */ public native String strFromJNI(); /** */ public long nativeCodeLoaded=0; static { try { System.loadLibrary("nativetest"); } catch(UnsatisfiedLinkError ule) { ule.printStackTrace(); } } } ---------------------------------------------------------------------- zeljkoc · 2013-04-01 05:22 I found a solution is bug Quotewhat to do to  it works lazaurs-1.1 FPC-2.7.1 or (I install: WinXp 32, Lazarus BigIDE, arm-android how to work with CodeTyphon 4.10) problems: Lazarus find lacation libdl.so to settings FLD:\Programs\android- ndk-r8d\platforms\android-8\arch-arm\usr\lib\libdl.so to android lazarus blank settings patch -Fl copy libdl.so too root source pascal