2011-04-29 80 views
5

我開發了一個應用程序,允許使用Facebook sdk在facebook牆上發佈數據。我已經在其他幾款手機上測試過,例如LG optimus,但是當應用程序在摩托羅拉機器人上運行時,它有時會崩潰。從我的應用程序分享Facebook的摩托羅拉Droid崩潰?

當我點擊我的上下文菜單中的share facebook按鈕時,應用程序崩潰。

我用Google搜索,發現了這麼多

http://groups.google.com/group/android-developers/browse_thread/thread/92d6f063682d2ca4/735acce1300115d7?show_docid=735acce1300115d7&pli=1

使用網絡套件時,Droid手機存在問題。據報道在Facebook SDK

同樣的問題 https://github.com/facebook/facebook-android-sdk/issues/82?authenticity_token=a321076df454835ad9c481d6fa73a3ea8cad1ceb

同樣它主要是說用摩托羅拉Droid的過程中發生了異常。

這裏是堆棧跟蹤:

java.lang.NullPointerException 
    at android.webkit.WebView.onWindowFocusChanged(WebView.java:4177) 
    at android.view.View.dispatchWindowFocusChanged(View.java:3788) 
    at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:658) 
    at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:662) 
    at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:662) 
    at android.view.ViewGroup.dispatchWindowFocusChanged(ViewGroup.java:662) 
    at android.view.ViewRoot.handleMessage(ViewRoot.java:1921) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:123) 
    at android.app.ActivityThread.main(ActivityThread.java:4627) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:521) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    at dalvik.system.NativeStart.main(Native Method) 

是否有人有一個解決方案或解決方法呢?

編輯:這似乎也發生在HTC Incredible也。

+0

有誰找到這個問題的任何解決方案或解決方法嗎? – HitOdessit 2011-06-22 12:46:16

回答

7

有這個周圍的工作,其中明確提到了摩托羅拉Droid你可以找到原始發帖:

Workaround for Null Pointer Excpetion in WebView.onWindowFocusChanged

創建自定義網頁類:

CustomWebView.java

public class CustomWebView extends WebView { 

    public CustomWebView(Context context) { 
     super(context); 
    } 

    public CustomWebView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    public CustomWebView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    @Override 
    public void onWindowFocusChanged(boolean hasWindowFocus) { 
     try{ 
      super.onWindowFocusChanged(hasWindowFocus); 
     }catch(NullPointerException e){ 
     // Catch null pointer exception 
     } 
    } 
} 

現在打開由facebook提供的FbDialog.java並修改創建webview的行以使用t他的CustomWebView子如下

WebView view = new CustomWebView(getContext());

+0

非常感謝。要測試它,並會讓你知道 – rogerstone 2011-07-25 05:30:19

+0

Hi @Merlin,我也面臨同樣的問題,但我需要放置「WebView視圖=新的CustomWebView(getContext());」這段代碼。 我使用「facebookConnector.login();」,它會自動打開一個嵌入式facebook登錄屏幕。 – 2011-08-18 15:45:29

+0

Odl話題,但由於Venkat的問題也困擾我們,互聯網上沒有任何東西。修改facebook提供的文件FbDialog.java(package:com.facebook.android)。 CTRL + F代表「新的WebView」,你會發現你需要調用CustomWebView的行。 – yoshi 2012-03-16 10:28:59

相關問題