Как поймать Не удалось найти информацию о провайдере для com.facebook.katana.provider.PlatformProvider error

Может ли кто-нибудь сказать мне, где я должен установить try / catch, чтобы поймать это?

02-10 22:54:35.701: E/ActivityThread(787): Failed to find provider info for com.facebook.katana.provider.PlatformProvider 

Я уже знаю, что это вызвано тем, что я не установил приложение facebook в мобильном телефоне.

Я хочу сделать Toast, когда исключение выбрано, это не работает.

 shareButton.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { // TODO Auto-generated method stub try{ FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(Archivo.this) .setLink(pagina) .setName(nombre) .setPicture(photo) .setDescription(brief) .build(); uiHelper.trackPendingDialogCall(shareDialog.present()); } catch(FacebookDialogException ex){ int duration = Toast.LENGTH_SHORT; CharSequence FacebookDialogError="Instale y actualize su version de Facebook"; Toast toast = Toast.makeText(activity,FacebookDialogError , duration); toast.show(); } } }); 

Я установил те же тосты, где facebookdialog получает исключение, и он все еще не работает.

  public FacebookDialog build() { validate(); Bundle extras = new Bundle(); putExtra(extras, NativeProtocol.EXTRA_APPLICATION_ID, applicationId); putExtra(extras, NativeProtocol.EXTRA_APPLICATION_NAME, applicationName); Intent intent = handleBuild(extras); if (intent == null) { int duration = Toast.LENGTH_SHORT; CharSequence FacebookDialogError="Instale y aCtualize su version de Facebook"; Toast toast = Toast.makeText(activity,FacebookDialogError , duration); toast.show(); throw new FacebookException("Unable to create Intent; this likely means the Facebook app is not installed."); } appCall.setRequestIntent(intent); return new FacebookDialog(activity, fragment, appCall, getOnPresentCallback()); } 

Что мне делать, чтобы сделать тост этого исключения?

Извините, если слишком поздно ответить на мой собственный вопрос, но я собираюсь обновить приложение там, где этот вопрос вышел. Поскольку вопрос по-прежнему просматривается, я отправлю сообщение об устранении неполадок

Это резерв в случае, если приложение Facebook не найдено.

  private void publishFeedDialog(String Link,String Name,String Photo,String Descripcion) { Bundle params = new Bundle(); params.putString("name", Name); params.putString("caption",Caption); params.putString("description",Descripcion); params.putString("link", Link); params.putString("picture",Photo); WebDialog feedDialog = ( new WebDialog.FeedDialogBuilder(sEstablecimiento.this, Session.getActiveSession(), params)) .setOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(Bundle values, FacebookException error) { if (error == null) { final String postId = values.getString("post_id"); if (postId != null) { Toast.makeText(sEstablecimiento.this, "Posted story, id: "+postId, Toast.LENGTH_SHORT).show(); } else { // User clicked the Cancel button Toast.makeText(sEstablecimiento.this.getApplicationContext(), "Publish cancelled", Toast.LENGTH_SHORT).show(); } } else if (error instanceof FacebookOperationCanceledException) { // User clicked the "x" button Toast.makeText(sEstablecimiento.this.getApplicationContext(), "Publish cancelled", Toast.LENGTH_SHORT).show(); } else { // Generic, ex: network error Toast.makeText(sEstablecimiento.this.getApplicationContext(), "Error posting story", Toast.LENGTH_SHORT).show(); } } }) .build(); feedDialog.show(); } 

И используйте логическое значение, чтобы проверить, может ли ShareDialog быть buil

 if (FacebookDialog.canPresentShareDialog(getApplicationContext(), FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) { FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(myActivity.this) .setLink("page") .setName("name") .setPicture("photo") .setDescription("description") .build(); uiHelper.trackPendingDialogCall(shareDialog.present()); } else { publishFeedDialog("page","name","photo","description"); } 

Надеюсь, это может быть полезно для кого-то. Спасибо за вашу терпимость, прощайте мое отсутствие заботы о вопросе.