在腾讯下载的SDK没完全读懂,导致不会用=_=!哎菜鸟没救了么
在运行下面的代码的时候总是提示mTencent类实例化失败(即总是抛出NullPointer异常);
我觉得是Tencent.createInstance(APP_ID,this.getApplicationContext());中的参数有错。但不明白第二个参数这么写对不对,全局Context是这样么?最好能有简单的Demo供参考,腾讯的太乱了。
这个第三方登录的类是项目中的一个单独的Activity,算不算全局Context呢,项目总框架后面有附图
项目框架如下图:
第三方登录界面如下:
在运行下面的代码的时候总是提示mTencent类实例化失败(即总是抛出NullPointer异常);
我觉得是Tencent.createInstance(APP_ID,this.getApplicationContext());中的参数有错。但不明白第二个参数这么写对不对,全局Context是这样么?最好能有简单的Demo供参考,腾讯的太乱了。
这个第三方登录的类是项目中的一个单独的Activity,算不算全局Context呢,项目总框架后面有附图
public class QQSinaLogin extends Activity implements OnClickListener {
Button QQloginBtn, SinaloginBtn;
public static Tencent mTencent;
private static final String APP_ID = "100489529";
private static final String SCOPE = "get_user_info, get_simple_userinfo, add_share";// 权限:读取用户信息并分享信息
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.qqsinalogin);
/*
* 引用 Tencent类SDK访问开放OpenAPI,
* @param1——APP_ID,
* @param2——应用程序全局Context
*/
mTencent = Tencent.createInstance(APP_ID,this.getApplicationContext());
QQloginBtn = (Button) findViewById(R.id.QQlogin);
SinaloginBtn = (Button) findViewById(R.id.Weibologin);
QQloginBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.QQlogin:
onClickLogin();
break;
}
}
private void onClickLogin() {
if (!mTencent.isSessionValid()) {
IUiListener listener = new BaseUiListener() {
@Override
protected void doComplete(JSONObject values) {
// TODO:登录成功的一些处理
}
};
mTencent.login(this, SCOPE, listener);
} else {
mTencent.logout(this);
}
}
private class BaseUiListener implements IUiListener {
@Override
public void onComplete(JSONObject response) {
doComplete(response);
}
protected void doComplete(JSONObject values) {}
@Override
public void onError(UiError e) {}
@Override
public void onCancel() {}
}
public boolean onKeyDown(int keyCode, KeyEvent event) { // 返回键返回Homepage
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
Intent intent = new Intent(QQSinaLogin.this, Homepage.class);
startActivity(intent);
overridePendingTransition(R.anim.translate_left_enter,
R.anim.holding_anima); //设定新的Activity进入和当前Activity退出时的动画。
this.finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
项目框架如下图:
![](http://img.bbs.csdn.net/upload/201307/31/1375272063_913048.png)
第三方登录界面如下:
![](http://img.bbs.csdn.net/upload/201307/31/1375271905_513727.png)