-
Creator 版本: cocos接taptap登录,底层依赖都下载好了 ,拉起taptap登录,看了官方demo把官方demo的SDK文件直接拉过来,调取登录,怎么都不成功!
-
目标平台:
-
重现方式:
-
首个报错:
-
之前哪个版本是正常的:
-
手机型号:
-
手机浏览器:
-
编辑器操作系统:
-
重现概率:
哪位大佬指教一下
之前是调不到taptaplogin 我定义单例类 调到了发现没有初始化,报错,后来单例类去初始化,初始化直接就失败了,withAppContext(getApplicationContext())到这就报错了
可以看到log么?根据log提示 按部就班才能解决问题。
你定义这个Maincity 有点奇怪啊,也没见给他赋值。空指针了。
在onCreate的时候赋值看看 Maincity = this。
感觉有点乱,如果是多个渠道接入简直是要命。
说明报错你MainActivity还没初始化 还没经过onCreate 。你在“走到了” 那里 打印一下Maincity == null 是不是空就知道了。或者log根本就没有“初始化“ 这个打印。
MainActivity 不是你的游戏Activity吧 不是的话要手动启动才行。
我也想过直接调oncreator但是需要传参,参数不知道怎么传
Activity 是个组件需要启动才行的,启动后才走生命流程。如果是主Activity则自动启动。
在manifest.xml 配置中有 决定谁是主Activity。cocos的主Activity 继承了Cocos2dxActivity。你自己定义这个Activity应该没有启动,因此报错了。
你的游戏 Activity 是 AppActivity ,MainActivity 应该是还没启动吧

是啊,但是就因为没有启动,oncreate没有调用,maincity是空,所以调不到任何方法,静态方法中,this指向不明确,所以也没办法在toLogin中使用maincity=this,也很无奈
是啊,怎么启动大佬可以指点一下吗
写了一套你参考一下 应该可以
1、渠道基类 相当于桥梁的作用
ChannelBase
private Activity mActivity;
public initChannel(Activity act){
mActivity = act
}
Activity 生命周期
onCreate
…
onStop
渠道的方法
login
pay
logout
…
2、具体渠道例如TapTap
TapTapMonster extends ChannelBase
private TapTapMonster mTapTapMonster
public static getInstance(){
if(mTapTapMonster == null){
mTapTapMonster = new mTapTapMonster();
}
return mTapTapMonster;
}
重载 接入SDK 的生命周期
onCreate(){
SDK.onCreate();
}
…
重载渠道的方法
login(){
SDK.login();
}
pay
logout
…
3、主Activity ,游戏的主Activity,【也就是你截图的AppActivity】
AppActivity extends Cocos2dxActivity
onCreate(){
TapTapMonster.getInstance().initChannel(MainActivity.this);//初始化
TapTapMonster.getInstance().onCreate();
}
–生命周期都调用下 TapTapMonster.getInstance() 对应的周期函数
其他地方需要调用登录直接,其他方法也一样
TapTapMonster.getInstance().login()
有哪位成功接入登录了,指点一下
自己顶一下
简单试用,那就把Tap的代码放在AppActivity的onCreate中调用
问题看到了,这个方法返回值为空,可怎么解决,网上没答案
这个是安卓基础,你这个要在AppAcitvity里调用




