title: Android compile webkit from source and use it in an application
body: <p>My main motivation of building my own Android webkit to minimise the rendering inconsistency of different vision of webkit on different version of android.</p>
  
  <p>So far I have tried:</p>
  
  <ul>
  <li>downloaded the source code of android 2.2 and use (make framework) to make framework.jar and use it to replace android.jar from android SDK in a eclipse project</li>
  <li>changed the package name of all native methods registered in (external/webkit/WebKit/android/jni) from android.webkit to the package name of my eclipse project (com/mycustomwebkit) and then use (make libwebcore) to create the library libwebcore.so</li>
  <li>copied the entire webkit java class from android source(in external/webkit/WebKit/android) to my eclipse project and use it to create my own webview.</li>
  <li>included libwebcore.so in lib/armeabi in eclipse</li>
  <li>compiled and created apk file</li>
  </ul>
  
  <p>but application crashes on launch on device with the following errors:</p>
  
  <pre><code>04-18 10:39:23.561: W/dalvikvm(8214): No implementation found for native Lcom/tester/webkit/JWebCoreJavaBridge;.nativeConstructor 
  
  ()V
  04-18 10:39:23.561: W/dalvikvm(8214): threadid=14: thread exiting with uncaught exception (group=0x2b4d61f8)
  04-18 10:39:23.561: E/AndroidRuntime(8214): FATAL EXCEPTION: WebViewCoreThread
  04-18 10:39:23.561: E/AndroidRuntime(8214): java.lang.UnsatisfiedLinkError: nativeConstructor
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at com.tester.webkit.JWebCoreJavaBridge.nativeConstructor(Native Method)
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at com.tester.webkit.JWebCoreJavaBridge.&lt;init&gt;(JWebCoreJavaBridge.java:66)
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at com.tester.webkit.BrowserFrame.&lt;init&gt;(BrowserFrame.java:237)
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at com.tester.webkit.WebViewCore.initialize(WebViewCore.java:236)
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at com.tester.webkit.WebViewCore.access$1(WebViewCore.java:230)
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at com.tester.webkit.WebViewCore$WebCoreThread$1.handleMessage
  
  (WebViewCore.java:705)
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at android.os.Handler.dispatchMessage(Handler.java:99)
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at android.os.Looper.loop(Looper.java:137)
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at com.tester.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:748)
  04-18 10:39:23.561: E/AndroidRuntime(8214):     at java.lang.Thread.run(Thread.java:856)
  </code></pre>
  
  <p>Am I completely in a wrong direction ? and is there a better way to minimise the rendering inconsistency of different vision of webkit on different version of android ?</p>