2011-11-27 84 views
4

我試圖用Facebook的Facebook SDK中的Facebook對話框上傳圖像(由相機捕獲)。但在Facebook登錄後它崩潰了。我找不到問題。Android捕獲圖像與相機並與Facebook分享sdk

這裏是我的代碼

protected void postStatus() { 
    byte[] data = null; 
try { 
    ContentResolver cr = getContentResolver(); 
    InputStream fis = cr.openInputStream(MyCarDealActivity.imageUri); 
    Bitmap bi = BitmapFactory.decodeStream(fis); 
    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    bi.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
    data = baos.toByteArray();    
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
    Bundle parameters = new Bundle(); 
    parameters.putString("method", "photos.upload");   
    parameters.putByteArray("picture", data); 
    parameters.putString("caption", "Hello"); 
    facebook.dialog(FacebookScreen.this, "me/photos", parameters, 
      new DialogListener() { 

       @Override 
       public void onCancel() { 

       } 

       @Override 
       public void onComplete(Bundle values) { 
        Toast.makeText(FacebookScreen.this, "Published", 
          Toast.LENGTH_LONG).show(); 
        finish(); 
       } 

       @Override 
       public void onError(DialogError e) { 
        Toast.makeText(FacebookScreen.this, 
          "Error :" + e.getLocalizedMessage(), 
          Toast.LENGTH_LONG).show(); 
        finish(); 
       } 

       @Override 
       public void onFacebookError(FacebookError e) { 
        Toast.makeText(FacebookScreen.this, 
          "Error :" + e.getLocalizedMessage(), 
          Toast.LENGTH_LONG).show(); 
        finish(); 
       } 

      }); 
} 

下面是錯誤日誌

11-27 13:40:33.434: ERROR/AndroidRuntime(376): java.lang.NullPointerException 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at java.net.URLEncoder.encode(URLEncoder.java:53) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at com.facebook.android.Util.encodeUrl(Util.java:85) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at com.facebook.android.Facebook.dialog(Facebook.java:609) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at com.kchaddock.mycardeal.FacebookScreen.postStatus(FacebookScreen.java:67) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at com.kchaddock.mycardeal.FacebookScreen$1.onComplete(FacebookScreen.java:34) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at com.facebook.android.Facebook$1.onComplete(Facebook.java:304) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at com.facebook.android.FbDialog$FbWebViewClient.shouldOverrideUrlLoading(FbDialog.java:134) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at android.webkit.CallbackProxy.uiOverrideUrlLoading(CallbackProxy.java:216) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:323) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at android.os.Looper.loop(Looper.java:123) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at java.lang.reflect.Method.invoke(Method.java:507) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
11-27 13:40:33.434: ERROR/AndroidRuntime(376):  at dalvik.system.NativeStart.main(Native Method) 

在此先感謝

+0

你是否檢查過你的代碼的解碼部分? – mH16

+0

如果你在這裏分享更多的代碼,會更容易。 – mH16

回答

1

嘗試使用以下,而不是facebook.dialog

facebook.request("me/feed", params, "POST"); 
+0

這隻會創建一個AsyncTask來上傳照片,並不會顯示對話框/ \ –

相關問題