У меня возникли проблемы с открытием активного сеанса facebook в моем приложении для Android в соответствии с руководством, опубликованным по адресу https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/
Я боролся с этим в течение довольно долгого времени, но безуспешно! Я буду рад, если один из вас укажет мне правильное направление! (Бьюсь об заклад, ошибка связана с некоторыми настройками на моей стороне, но я не могу ее обнаружить)
Вот ошибка, которую я вижу после вызова Session.openActiveSession(this, true, new Session.StatusCallback() в onCreate моей активности (я в значительной степени следую шагам, указанным в руководствах для разработчиков facevook)
EDIT: сначала регистрируется следующее предупреждающее сообщение, а затем сообщение об ошибке на следующем снимке экрана.
09-03 19:26:22.726: W/Bundle(17458): ключ com.facebook.platform.protocol.PROTOCOL_VERSION ожидаемая строка, но значение было java.lang.Integer. Было возвращено значение по умолчанию. 09-03 19:26:22.736: W/Bundle(17458): попытка приведения сгенерировала внутреннее исключение: 09-03 19:26:22.736: W/Bundle(17458): java .lang.ClassCastException: java.lang.Integer нельзя преобразовать в java.lang.String 09-03 19:26:22.736: W/Bundle(17458): at android.os.Bundle.getString(Bundle.java:1061) 09-03 19:26:22.736: W/Bundle(17458): в android.content.Intent.getStringExtra(Intent.java:4466) 09-03 19:26:22.736: W/Bundle(17458): в com. facebook.AuthorizationClient$KatanaLoginDialogAuthHandler.tryAuthorize(AuthorizationClient.java:821) 09-03 19:26:22.736: W/Bundle(17458): в com.facebook.AuthorizationClient.tryCurrentHandler(AuthorizationClient.java:272)
09-02 22:55:04.110: E/AndroidRuntime(13287): НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: main 09-02 22:55:04.110: E/AndroidRuntime(13287): java.lang.RuntimeException: Невозможно возобновить активность< /strong> {com.good.amrfbintegration/com.facebook.LoginActivity}: java.lang.NullPointerException 09-02 22:55:04.110: E/AndroidRuntime(13287 ): в android.app.ActivityThread.performResumeActivity(ActivityThread.java:3036) 09-02 22:55:04.110: E/AndroidRuntime(13287): в android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3077) 09- 02 22:55:04.110: E/AndroidRuntime(13287): в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2373)
Вот что я сделал до сих пор
Обновлено приложение на Facebook со следующей информацией (я использовал хеш-ключ, сгенерированный с помощью хранилища ключей отладки моей машины)
Вот соответствующая информация из моего файла манифеста (@string/app_id — это идентификатор приложения с портала разработчиков facebook)
Таким образом я добавил ссылку на SDK Facebook в свой проект.
Вот код в моем методе OnCreate основного действия
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity = this;
Session.openActiveSession(this, true, new Session.StatusCallback()
{
@Override
public void call(Session session, SessionState state, Exception exception)
{
if (session.isOpened())
{
Toast.makeText(activity, "Connected to Fb", Toast.LENGTH_SHORT).show();
}
}});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
При выполнении Session.openActiveSession logcat отображает ошибку, показанную на моем первом снимке экрана.
Метод вызова Session.StatusCallback() выполняется один раз (в то время как сеанс имеет состояние «открытие»), но в следующий раз приложение аварийно завершает работу. вот что я вижу перед сбоем приложения
Будем очень благодарны любой помощи!