您的位置:首页 > 移动开发 > Android开发

【腾讯android的SDK】mTencent总是实例化失败,各位大神菜鸟求教!!!

2017-01-02 14:05 337 查看
在腾讯下载的SDK没完全读懂,导致不会用=_=!哎菜鸟没救了么

    在运行下面的代码的时候总是提示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);

}

}


项目框架如下图:



第三方登录界面如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: