9

私の Android アプリでは、WebView アクティビティ クラスに次の行があります。

webView.addJavascriptInterface(new JSInterface(this), "Android");   

JSInterface クラスでは、以下のように Google の "SpreadSheetService" を初期化しています。

import com.google.gdata.client.spreadsheet.SpreadsheetService;

--- some more imports ---


public class JSInterface {
    Context mContext;

    public SpreadsheetService service;

    /** Instantiate the interface and set the context */
    JSInterface(Context c) {
        mContext = c;
        service = new SpreadsheetService("List Demo");
    }

    ------- some more code -----

アプリケーションを実行すると、次の例外が発生します。

01-19 21:38:00.652: E/AndroidRuntime(4085): java.lang.ExceptionInInitializerError

以下のトレースがあります

01-19 21:38:00.652: E/AndroidRuntime(4085): FATAL EXCEPTION: main
01-19 21:38:00.652: E/AndroidRuntime(4085): java.lang.ExceptionInInitializerError
01-19 21:38:00.652: E/AndroidRuntime(4085):     at com.android.quotes.JSInterface.<init>(JSInterface.java:33)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at com.android.quotes.CHQuotesActivity.onCreate(CHQuotesActivity.java:19)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at android.app.Activity.performCreate(Activity.java:4465)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at android.app.ActivityThread.access$600(ActivityThread.java:122)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at android.os.Looper.loop(Looper.java:137)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at android.app.ActivityThread.main(ActivityThread.java:4340)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at java.lang.reflect.Method.invokeNative(Native Method)
01-19 21:38:00.652: E/AndroidRuntime(4085):     at java.lang.reflect.Method.invoke(Method.java:511)

私はGoogleを検索しましたが、これに対する解決策はありませんでした..なぜこの例外が発生するのかについて何か考えはありますか??

ピーター

4

5 に答える 5

16

このドキュメントに基づいて、静的初期化子または静的変数の初期化子の評価中に例外が発生したことを示すために、ExceptionInInitializerError がスローされます。コードに静的な初期化ロジックがあることを確認してください。

于 2012-01-19T16:30:25.037 に答える
1

java.lang.ExceptionInInitializerErrorアンドロイドOS 11

これが OkHttp に関連している場合は、バージョン 4.4.0 に更新してください。

このバージョンでは修正されています。

実装 'com.squareup.okhttp3:logging-interceptor:4.4.0'

ありがとう。

于 2020-10-02T05:50:49.797 に答える