您的位置:首页技术文章
文章详情页

java - 安卓接入微信登录,onCreate不会执行

浏览:82日期:2022-09-28 10:43:48

问题描述

代码都贴出来

WXEntryActivity.java

package com.vivigames.scmj.wxapi;import org.cocos2dx.lib.Cocos2dxJavascriptJavaBridge;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.provider.Settings;import android.util.Log;import com.tencent.mm.sdk.openapi.BaseReq;import com.tencent.mm.sdk.openapi.BaseResp;import com.tencent.mm.sdk.openapi.IWXAPI;import com.tencent.mm.sdk.openapi.IWXAPIEventHandler;import com.tencent.mm.sdk.openapi.SendAuth;import com.tencent.mm.sdk.openapi.WXAPIFactory;import com.vivigames.scmj.Constants;import com.vivigames.scmj.WXAPI;import com.tencent.mm.sdk.openapi.WXTextObject;public class WXEntryActivity extends Activity implements IWXAPIEventHandler { private IWXAPI _api; @Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//setContentView(R.layout.plugin_entry);Log.d('WXEntryActivity', 'onCreate');_api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, false);//_api.registerApp(Constants.APP_ID);_api.handleIntent(getIntent(), this); } @Override protected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);_api.handleIntent(intent, this); } @Override public void onReq(BaseReq req) {/*switch (req.getType()) {case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX: //goToGetMsg(); break;case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX: //goToShowMsg((ShowMessageFromWX.Req) req); break;default: break;}*/this.finish(); } @Override public void onResp(BaseResp resp) {int result = 0;switch (resp.errCode) { case BaseResp.ErrCode.ERR_OK:if (WXAPI.isLogin) { SendAuth.Resp authResp = (SendAuth.Resp) resp; if (authResp != null && authResp.token != null) {Cocos2dxJavascriptJavaBridge.evalString('cc.vv.anysdkMgr.onLoginResp(’' + authResp.token + '’)'); }}break; case BaseResp.ErrCode.ERR_USER_CANCEL:result = 2;//R.string.errcode_cancel;break; case BaseResp.ErrCode.ERR_AUTH_DENIED:result = 3;//R.string.errcode_deny;break; default:result = 4;//R.string.errcode_unknown;break;}this.finish();//Toast.makeText(this, result, Toast.LENGTH_LONG).show(); }}

WXAPI.java

package com.vivigames.scmj;import android.app.Activity;import android.content.Context;import com.tencent.mm.sdk.openapi.IWXAPI;import com.tencent.mm.sdk.openapi.SendAuth;import com.tencent.mm.sdk.openapi.SendMessageToWX;import com.tencent.mm.sdk.openapi.WXAPIFactory;import com.tencent.mm.sdk.openapi.WXMediaMessage;import com.tencent.mm.sdk.openapi.WXWebpageObject;public class WXAPI { public static IWXAPI api; public static Activity instance; public static boolean isLogin = false; public static void Init(Activity context){WXAPI.instance = context;api = WXAPIFactory.createWXAPI(context, Constants.APP_ID, true);api.registerApp(Constants.APP_ID); }private static String buildTransaction(final String type) {return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis(); }public static void Login(){isLogin = true;final SendAuth.Req req = new SendAuth.Req();req.scope = 'snsapi_userinfo';req.state = 'carjob_wx_login';api.sendReq(req);//instance.finish(); }public static void Share(String url,String title,String desc){try{ isLogin = false; WXWebpageObject webpage = new WXWebpageObject(); webpage.webpageUrl = url; WXMediaMessage msg = new WXMediaMessage(webpage); msg.title = title; msg.description = desc; //msg.thumbData = Util.bmpToByteArray(thumbBmp, true);SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction('webpage'); req.message = msg; req.scene = /*isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : */SendMessageToWX.Req.WXSceneSession; api.sendReq(req); //instance.finish();}catch(Exception e){ e.printStackTrace();} }}

AndroidMainfest.xml

<?xml version='1.0' encoding='utf-8'?><manifest xmlns:android='http://schemas.android.com/apk/res/android' package='com.vivigames.scmj' android:installLocation='auto'> <uses-feature android:glEsVersion='0x00020000' /><applicationandroid:allowBackup='true'android:label='@string/app_name'android:icon='@mipmap/ic_launcher'><!-- Tell Cocos2dxActivity the name of our .so --><meta-data android:name='android.app.lib_name' android:value='cocos2djs' /><activity android:name='org.cocos2dx.javascript.AppActivity' android:screenOrientation='sensorLandscape' android:configChanges='orientation|keyboardHidden|screenSize' android:label='@string/app_name' android:theme='@android:style/Theme.NoTitleBar.Fullscreen' > <intent-filter><action android:name='android.intent.action.MAIN' /><category android:name='android.intent.category.LAUNCHER' /> </intent-filter></activity><activity android:name='.wxapi.WXEntryActivity' android:label='@string/app_name' android:exported='true' android:launchMode='singleTop'> <intent-filter><action android:name='android.intent.action.MAIN' /><category android:name='android.intent.category.LAUNCHER' /> </intent-filter></activity> </application><uses-permission android:name='android.permission.INTERNET'/> <uses-permission android:name='android.permission.CHANGE_NETWORK_STATE'/> <uses-permission android:name='android.permission.CHANGE_WIFI_STATE'/> <uses-permission android:name='android.permission.ACCESS_NETWORK_STATE'/> <uses-permission android:name='android.permission.ACCESS_WIFI_STATE'/> <uses-permission android:name='android.permission.MOUNT_UNMOUNT_FILESYSTEMS'/> <uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE'/> <uses-permission android:name='android.permission.RESTART_PACKAGES' /> <uses-permission android:name='android.permission.KILL_BACKGROUND_PROCESSES' /></manifest>

点击按钮能够调用到Login方法,可是初始化的时候没有调用onCreate方法,新手一枚,求指教

问题解答

回答1:

我把AndroidMainfest下的name为org.cocos2dx.javascript.AppActivity

<intent-filter> <action android:name='android.intent.action.MAIN' /> <category android:name='android.intent.category.LAUNCHER' /></intent-filter>

注销掉,WXEntryActivity下的onCreate方法才会被调用可是还是不知道怎么解决

标签: 微信