Android のさまざまなバージョンで Webkit のさまざまなビジョンのレンダリングの不一致を最小限に抑えるために、独自の Android Webkit を構築する主な動機です。
これまでのところ、私は試しました:
- Android 2.2のソースコードをダウンロードし、(フレームワークを作成)を使用してframework.jarを作成し、それを使用してEclipseプロジェクトのAndroid SDKからandroid.jarを置き換えます
- (external/webkit/WebKit/android/jni) に登録されているすべてのネイティブ メソッドのパッケージ名を android.webkit から私の Eclipse プロジェクトのパッケージ名 (com/mycustomwebkit) に変更し、(make libwebcore) を使用してライブラリ libwebcore を作成します。 。それで
- Webkit Java クラス全体を Android ソース (external/webkit/WebKit/android 内) から Eclipse プロジェクトにコピーし、それを使用して独自の WebView を作成しました。
- Eclipse の lib/armeabi に libwebcore.so を含めました
- コンパイルして作成したapkファイル
ただし、デバイスでの起動時にアプリケーションがクラッシュし、次のエラーが発生します。
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.<init>(JWebCoreJavaBridge.java:66)
04-18 10:39:23.561: E/AndroidRuntime(8214): at com.tester.webkit.BrowserFrame.<init>(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)
私は完全に間違った方向にいますか?Android の異なるバージョンで Webkit の異なるビジョンのレンダリングの不一致を最小限に抑えるより良い方法はありますか?