2012-01-19 12 views
5

Trong ứng dụng Android của tôi lớp hoạt động WebView đã sau dòng,ExceptionInInitializerError trong ứng dụng Android?

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

Và trong lớp JSInterface, tôi khởi Google "SpreadSheetService" như dưới đây,

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

Khi tôi chạy các ứng dụng tôi nhận ngoại lệ sau,

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

có dấu vết bên dưới

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) 

Tôi đã tìm kiếm trên Google, nhưng không nhận được bất kỳ giải pháp nào cho điều này .. Bất kỳ ý tưởng nào về lý do tôi nhận được ngoại lệ này ??

Peter

+0

Bạn có thể tạo asyncTask/Handler ở bất kỳ đâu trong mã không? –

Trả lời

13

Based on this documentation Một ExceptionInInitializerError được ném để cho biết rằng một ngoại lệ xảy ra trong đánh giá của một initializer tĩnh hoặc initializer cho một biến tĩnh. Kiểm tra mã của bạn có bất kỳ logic khởi tạo tĩnh nào không.

+0

Vâng, nhưng vấn đề có thể là gì? Một thành viên tĩnh nên không có vấn đề được truy cập, do đó nó là tĩnh. –

+2

@IgorGanapolsky: Nó không phải là do được truy cập, đó là vì giá trị được khởi tạo không được xây dựng đúng cách. Phần bên phải của biến tĩnh. – kosa

+0

Thú vị, được khởi tạo cho cái gì? Một loại không thể thay đổi hoặc null? –