2011-04-29 14 views
5

He desarrollado una aplicación que permite publicar datos en la pared de Facebook usando Facebook SDK. He probado en algunos otros teléfonos como LG Optimus, pero cuando la aplicación se ejecuta en el Motorola Droid a veces se cuelga.Compartir en Facebook desde mi aplicación se bloquea en Motorola Droid?

Cuando hago clic en el botón Compartir Facebook en mi menú contextual, la aplicación se cuelga.

He buscado en Google y descubrí esto mucho

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

Existe un problema con los teléfonos Droid cuando se utiliza el kit web.

El mismo problema se informó en facebook SDK https://github.com/facebook/facebook-android-sdk/issues/82?authenticity_token=a321076df454835ad9c481d6fa73a3ea8cad1ceb

vez más, es en su mayoría dice que se ha producido la excepción durante el uso de Motorola Droid.

Aquí es el seguimiento de la pila:

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) 

¿Alguien tiene una solución o solución para esto?

Editar: Esto parece estar sucediendo en HTC Incredible también.

+0

¿Alguien encontró ninguna solución o solución para este problema? – HitOdessit

Respuesta

7

Hay un trabajo alrededor de este, que menciona explícitamente el Motorola Droid se puede encontrar la publicación original en:

Workaround for Null Pointer Excpetion in WebView.onWindowFocusChanged

Crear una clase de Web personalizado:

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

Ahora abra FbDialog.java proporcionado por Facebook y modifique la línea que crea la vista web para usar t que la subclase CustomWebView de la siguiente manera

WebView view = new CustomWebView(getContext());

+0

Muchas gracias. Pruébalo y te avisaré – rogerstone

+0

Hola @Merlin, también estoy enfrentando el mismo problema, pero ¿dónde tengo que colocar "WebView view = new CustomWebView (getContext());" este código Estoy usando "facebookConnector.login();", se está abriendo automáticamente una pantalla de inicio de sesión de Facebook incrustada. –

+0

Odl tema, pero dado que la pregunta de Venkat también nos molestó y no hay nada en Internet. Modifique el archivo FbDialog.java proporcionado por Facebook (paquete: com.facebook.android). CTRL + F para "nueva WebView" y encontrará la línea a la que debe llamar CustomWebView. – yoshi

Cuestiones relacionadas