2

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 の異なるビジョンのレンダリングの不一致を最小限に抑えるより良い方法はありますか?

4

1 に答える 1

2

これまでのところ、私は試しました:Android 2.2のソースコードをダウンロードし、(フレームワークを作成する)を使用してframework.jarを作成し、それを使用してEclipseプロジェクトのAndroid SDKからandroid.jarを置き換えます

それはうまくいきません。まず、デバイスに存在するクラスが、アプリ内の同じクラスに取って代わります。次に、WebKit は Java で実装されていません。

私は完全に間違った方向にいますか?

はい。

Android の異なるバージョンで Webkit の異なるビジョンのレンダリングの不一致を最小限に抑えるより良い方法はありますか?

「さまざまなバージョンの Android での Webkit のさまざまなビジョンのレンダリングの不一致」を引き起こすものは使用しないでください。

または、「異なるバージョンの Android での Webkit の異なるビジョンのレンダリングの不一致」に対処する作業を行った、何をしようとしても、互換性レイヤーを持つフレームワークを使用します。

于 2013-01-07T22:13:53.333 に答える