Здравствуйте. Создаю приложение, которое просто смогло подключиться бы к VK api для последующей обработки данных.
Вижу ошибку: int java.lang.String.length(), при попытке вызвать функцию возвращается null.
Я не пойму что именно не так. Подскажите пожалуйста.
03-17 15:41:54.860 1863-4130/com.sir2100.vkapipic E/AndroidRuntime: FATAL EXCEPTION: pool-2-thread-1
Process: com.sir2100.vkapipic, PID: 1863
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at libcore.net.UriCodec.encode(UriCodec.java:132)
at java.net.URLEncoder.encode(URLEncoder.java:57)
at com.vk.sdk.api.httpClient.VKHttpClient$VKHTTPRequest.getQuery(VKHttpClient.java:253)
at com.vk.sdk.api.httpClient.VKHttpClient$VKHTTPRequest.writeParams(VKHttpClient.java:208)
at com.vk.sdk.api.httpClient.VKHttpClient$VKHTTPRequest.createConnection(VKHttpClient.java:313)
at com.vk.sdk.api.httpClient.VKHttpClient.execute(VKHttpClient.java:167)
at com.vk.sdk.api.httpClient.VKHttpOperation.start(VKHttpOperation.java:77)
at com.vk.sdk.api.httpClient.VKHttpClient$2.run(VKHttpClient.java:145)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Сам код: (MainActivity.java)
package com.sir2100.vkapipic;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import com.vk.sdk.VKAccessToken;
import com.vk.sdk.VKCallback;
import com.vk.sdk.VKSdk;
import com.vk.sdk.api.VKError;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VKSdk.login(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (!VKSdk.onActivityResult(requestCode, resultCode, data, new VKCallback<VKAccessToken>() {
@Override
public void onResult(VKAccessToken res) {
// Пользователь успешно авторизовался
}
@Override
public void onError(VKError error) {
// Произошла ошибка авторизации (например, пользователь запретил авторизацию)
}
})) {
super.onActivityResult(requestCode, resultCode, data);
}
}
}
Application.java
package com.sir2100.vkapipic;
import com.vk.sdk.VKAccessToken;
import com.vk.sdk.VKAccessTokenTracker;
import com.vk.sdk.VKSdk;
/**
* Created by Игорь on 17.03.2016.
*/
public class Application extends android.app.Application {
VKAccessTokenTracker vkAccessTokenTracker = new VKAccessTokenTracker() {
@Override
public void onVKAccessTokenChanged(VKAccessToken oldToken, VKAccessToken newToken) {
if (newToken == null) {
// VKAccessToken is invalid
}
}
};
@Override
public void onCreate() {
super.onCreate();
vkAccessTokenTracker.startTracking();
VKSdk.initialize(this);
}
}