适用于android的Vk sdk
我想用vk.com做自动编辑。我下载了这个库,但并没有正常的示例如何使用它?我尝试下一个代码,但它不适合我适用于android的Vk sdk,android,vk,Android,Vk,我想用vk.com做自动编辑。我下载了这个库,但并没有正常的示例如何使用它?我尝试下一个代码,但它不适合我 package ua.khuta.testVkSdk; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; import com.vk.sdk.*; import c
package ua.khuta.testVkSdk;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import com.vk.sdk.*;
import com.vk.sdk.api.VKError;
public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
private static String sTokenKey = "VK_ACCESS_TOKEN";
private static String[] sMyScope = new String[]{VKScope.FRIENDS, VKScope.WALL, VKScope.PHOTOS, VKScope.NOHTTPS};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
VKSdk.initialize(sdkListener, "id_приложения", VKAccessToken.tokenFromSharedPreferences(this, sTokenKey));
setContentView(R.layout.main);
VKSdk.authorize(sMyScope, true, false);
}
@Override
protected void onResume() {
super.onResume();
VKUIHelper.onResume(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
VKUIHelper.onDestroy(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
VKUIHelper.onActivityResult(requestCode, resultCode, data);
}
private VKSdkListener sdkListener = new VKSdkListener() {
@Override
public void onCaptchaError(VKError captchaError) {
new VKCaptchaDialog(captchaError).show();
}
@Override
public void onTokenExpired(VKAccessToken expiredToken) {
VKSdk.authorize(sMyScope);
}
@Override
public void onAccessDenied(VKError authorizationError) {
new AlertDialog.Builder(MyActivity.this)
.setMessage(authorizationError.errorMessage)
.show();
}
@Override
public void onReceiveNewToken(VKAccessToken newToken) {
newToken.saveTokenToSharedPreferences(MyActivity.this, sTokenKey);
// Intent i = new Intent(LoginActivity.this, MainActivity.class);
// startActivity(i);
}
@Override
public void onAcceptUserToken(VKAccessToken token) {
//Intent i = new Intent(LoginActivity.this, MainActivity.class);
// startActivity(i);
}
};
}
错误文本
03-27 16:42:16.189: WARN/System.err(19974): java.net.BindException: Context must not be null
03-27 16:42:16.189: WARN/System.err(19974): at com.vk.sdk.VKSdk.checkConditions(VKSdk.java:90)
03-27 16:42:16.189: WARN/System.err(19974): at com.vk.sdk.VKSdk.authorize(VKSdk.java:170)
03-27 16:42:16.189: WARN/System.err(19974): at ua.khuta.testVkSdk.MyActivity.onCreate(MyActivity.java:23)
03-27 16:42:16.189: WARN/System.err(19974): at android.app.Activity.performCreate(Activity.java:5231)
03-27 16:42:16.189: WARN/System.err(19974): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-27 16:42:16.189: WARN/System.err(19974): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
03-27 16:42:16.189: WARN/System.err(19974): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
03-27 16:42:16.189: WARN/System.err(19974): at android.app.ActivityThread.access$800(ActivityThread.java:135)
03-27 16:42:16.189: WARN/System.err(19974): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
03-27 16:42:16.189: WARN/System.err(19974): at android.os.Handler.dispatchMessage(Handler.java:102)
03-27 16:42:16.189: WARN/System.err(19974): at android.os.Looper.loop(Looper.java:136)
03-27 16:42:16.189: WARN/System.err(19974): at android.app.ActivityThread.main(ActivityThread.java:5017)
03-27 16:42:16.189: WARN/System.err(19974): at java.lang.reflect.Method.invokeNative(Native Method)
03-27 16:42:16.189: WARN/System.err(19974): at java.lang.reflect.Method.invoke(Method.java:515)
03-27 16:42:16.189: WARN/System.err(19974): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-27 16:42:16.189: WARN/System.err(19974): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-27 16:42:16.189: WARN/System.err(19974): at dalvik.system.NativeStart.main(Native Method)
03-27 16:42:16.189: INFO/ActivityManager(593): Resuming delayed broadcast
出现问题的原因是您没有按照第节进行操作。您发布的错误指向以下代码段:
if (sInstance.getContext() == null) {
throw new BindException("Context must not be null");
}
>让我们看看<代码> GETEngule方法,非常简单:
Context getContext() {
return VKUIHelper.getTopActivity();
}
为什么它返回
null
?嗯,VKUIHelper
很简单,看一看,你就会明白为什么(因为mTopActivity
在没有调用VKUIHelper.onCreate()
的情况下是null
)你有什么错误吗?“在你链接到的页面上没有正常的示例如何使用它”有关于如何设置的说明,示例应用程序的源代码和库引用。@nikis,VKSdk.authorize中的上下文不能为null(sMyScope,true,false)@Michael,没有关于如何使用的示例。我试着做一些类似于那个指令的思考,它不会发布你的堆栈跟踪。否则,很难找出代码中的错误所在。是的,我只需在onCreate方法中添加VKUIHelper.onCreate()