Помощь по vk.sdk.VKAccessToken

Рейтинг: 0Ответов: 1Опубликовано: 28.04.2015

При нажатии на кнопку вызываю код поделиться новостью:

button2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        final Bitmap b = getPhoto();
        VKPhotoArray photos = new VKPhotoArray();
        photos.add(new VKApiPhoto("photo-47200925_314622346"));
        new VKShareDialog()
                .setText("I created this post with VK Android SDK\nSee additional information below\n#vksdk")
                .setUploadedPhotos(photos)
                .setAttachmentImages(new VKUploadImage[]{
                        new VKUploadImage(b, VKImageParameters.pngImage())
                })
                .setAttachmentLink("VK Android SDK information", "https://vk.com/dev/android_sdk")
                .setShareDialogListener(new VKShareDialog.VKShareDialogListener() {
                    @Override
                    public void onVkShareComplete(int postId) {
                        b.recycle();
                    }

                    @Override
                    public void onVkShareCancel() {
                        b.recycle();
                    }
                })
                .show(getFragmentManager(), "VK_SHARE_DIALOG");
    }
});

Все хорошо показывается и открывается, но когда нажимаю отправить на стену, то вылетает ошибка:

java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.vk.sdk.VKAccessToken.userId' on a null object reference
    at com.vk.sdk.dialogs.VKShareDialog.makePostWithAttachments(VKShareDialog.java:383)
    at com.vk.sdk.dialogs.VKShareDialog.access$600(VKShareDialog.java:104)
    at com.vk.sdk.dialogs.VKShareDialog$5.onClick(VKShareDialog.java:424)
    at android.view.View.performClick(View.java:4756)
    at android.view.View$PerformClick.run(View.java:19749)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5221)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Токен вроде получил. Из-за чего могла возникнуть ошибка?

Ответы

▲ 2

Добрый день. Мне кажется, что при авторизации вы не сохранили токен в SharedPreferences.

Попробуйте покопать в эту сторону(при авторизации):

 VKAccessToken.saveTokenToSharedPreferences(android.content.Context ctx,java.lang.String tokenKey)