2012-01-19 12 views
5

は私のAndroidアプリでWebViewのアクティビティクラスは、ライン、AndroidアプリのExceptionInInitializerError?私は、アプリケーションを実行すると

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 ----- 

を以下ましたI 「以下のトレースを持って

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

、次の例外を取得mは

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を検索しましたが、この解決策はありませんでした。なぜこの例外が発生しているのかについてのアイデアは何ですか?

ピーター

+0

コード内のどこにasyncTask/Handlerを作成できますか? –

答えて

13

Based on this documentationアンExceptionInInitializerErrorは、例外が静的初期化子またはstatic変数の初期化子の評価中に発生したことを示すためにスローされます。コードに静的初期化ロジックがあることを確認してください。

+0

ええ、何が問題なのでしょうか?静的メンバーにはアクセスしても問題はありません。したがって静的メンバーです。 –

+2

@IgorGanapolsky:アクセスされたためではありません。初期化された値が適切に構成されていないためです。静的変数の右側部分。 – kosa

+0

興味深い、何に初期化?変換不可能な型かnull? –

関連する問題