Android capture camera image and share with facebook sdk

I am trying to upload an image (captured by the camera) using the Facebook Dialog in the Facebook SDK. But it crashes after entering facebook. I can not solve the problem.

Here is my code

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(); } }); } 

Here is the error log

 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) 

Thank you in advance

+4
source share
1 answer

Try using the following instead of facebook.dialog :

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

Source: https://habr.com/ru/post/1383277/


All Articles