网狐精华版,打包安卓,微信登录

 

精华版、安卓项目用eclipse打开

此时会遇到很多问题,项目全线标红

没做过安卓开发的同学看到这些红色的报错已经一个头俩个大了,

直接萌生退却的想法

其实这只是纸老虎。

所有的报错,都是jar路径引用不正确。在项目迁移的时候出现的问题。

这个时候必须要耐心的把所有的问题都解决掉,才能继续用eclipse二开。

告诉自己、不怕、我能行!

右键项目》属性》JavaBuildPath》Library 

打开后,拉到最底下,就能看到错误的根源

标红的jar包 路径不正确。

在这里我推荐个工具  :Everything(文件搜索工具)

pc上的文件秒搜,强大的一逼。

把项目中缺失的jar包,直接在工具里搜好,然后重新指定。刷新项目。就会发现少了很多错误。

然后还有个错误,找不到cocos2dx 相关的jar包

这个问题,网上搜很多的、就是把cocos2dx 里的android.project 里的src 文件下的copy 到咱们的安卓项目中就好了。

如果是个正常的项目的话,操作完上述步骤,基本就没报错 了,

就可以在这个基础上继续二开了。

还有个 就是Android.manifest.xml 中 有几个字段需要改下。

 

我做上面的改动的原因是我要自己对接微信官方的Sdk登录、

因为原项目中的用的友盟sdk、老实说、我每次安卓打包的微信登录、完全看运气、

找不出原因。于是心一横,干脆直接改了得了。

这是微信登录的回调处理,我直接贴出来吧

WXEntryActivity.java

package com.qiaoshuai.majiang2017.wxapi;

import java.util.HashMap;
import java.util.Map;

import org.cocos2dx.thirdparty.HttpRequest;
import org.cocos2dx.thirdparty.ThirdDefine;
import org.cocos2dx.thirdparty.ThirdParty;
import org.cocos2dx.thirdparty.ThirdParty.PLATFORM;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.Context;
import android.os.Bundle;
import android.os.StrictMode;
import android.widget.Toast;

import com.tencent.mm.opensdk.constants.ConstantsAPI;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.umeng.socialize.bean.SHARE_MEDIA;

import android.app.Activity;
import android.content.Intent;

public class WXEntryActivity extends Activity implements IWXAPIEventHandler{
	private static final String TAG = "WXEntryActivity";
    private static final int RETURN_MSG_TYPE_LOGIN = 1; //登录
    private static final int RETURN_MSG_TYPE_SHARE = 2; //分享
    private Context mContext;

	// IWXAPI 是第三方app和微信通信的openapi接口
    private IWXAPI api;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        // 通过WXAPIFactory工厂,获取IWXAPI的实例
    	api = ThirdParty.getInstance().myWXApi;  	
			
		//注意:
		//第三方开发者如果使用透明界面来实现WXEntryActivity,需要判断handleIntent的返回值,如果返回值为false,则说明入参不合法未被SDK处理,应finish当前透明界面,避免外部通过传递非法参数的Intent导致停留在透明界面,引起用户的疑惑
        try {
        	api.handleIntent(getIntent(), this);
        } catch (Exception e) {
        	e.printStackTrace();
        }
    }

	@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:
			break;
		case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
			break;
		default:
			break;
		}
	}

	// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
	@Override
	public void onResp(BaseResp resp) {
		int result = 0;
		
		Toast.makeText(this, "baseresp.getType = " + resp.getType(), 2);
		
		System.out.println("baseresp.getType = " + ((SendAuth.Resp) resp).code);
		getAccessToken(((SendAuth.Resp) resp).code);
		switch (resp.errCode) {
		case BaseResp.ErrCode.ERR_OK:
			Toast.makeText(this, "baseresp.11", 2);
			//result = R.string.errcode_success;
			break;
		case BaseResp.ErrCode.ERR_USER_CANCEL:
			Toast.makeText(this, "baseresp.22", 2);
			//result = R.string.errcode_cancel;
			break;
		case BaseResp.ErrCode.ERR_AUTH_DENIED:
			Toast.makeText(this, "baseresp.33", 2);
			//result = R.string.errcode_deny;
			break;
		case BaseResp.ErrCode.ERR_UNSUPPORT:
			Toast.makeText(this, "baseresp.44", 2);
			//result = R.string.errcode_unsupported;
			break;
		default:
			//result = R.string.errcode_unknown;
			break;
		}
		
	}
	
	/**
     * 获取access_token:
     *
     * @param code 用户或取access_token的code,仅在ErrCode为0时有效
     */
    private void getAccessToken(final String code) {
        Map<String, Object> params = new HashMap();
        params.put("appid", ThirdDefine.WeixinAppID);
        params.put("secret", ThirdDefine.WeixinAppSecret);
        params.put("code", code);
        params.put("grant_type", "authorization_code");
        
        //Token
        String URL = String.format("https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code",ThirdDefine.WeixinAppID,ThirdDefine.WeixinAppSecret,code);
        System.out.println(URL);
        URL = "https://api.weixin.qq.com/sns/oauth2/access_token?";
        String param = "appid="+ ThirdDefine.WeixinAppID +"&secret="+ThirdDefine.WeixinAppSecret+"&code="+code+"&grant_type=authorization_code";
        StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        String accessTokenResult = HttpRequest.sendPost(URL, param);
        this.SetToken(accessTokenResult);
        if(this.GetToken("errcode") != null){
        	System.out.print(this.GetToken("errcode"));
        }else{
        	System.out.print(this.GetToken("access_token"));
        }
        
        System.out.println(" ============================================start 1 =============================================================");
        //UserInfo
        URL = "https://api.weixin.qq.com/sns/userinfo?";
        param = "access_token="+ this.GetToken("access_token") +"&openid="+ThirdDefine.WeixinAppID;
        System.out.println(URL);
        System.out.println(param);
        String userInfoResult = HttpRequest.sendPost(URL, param);
        this.SetUserInfo(userInfoResult);
        
        
		final PLATFORM plat = ThirdParty.getInstance().getPlatformFrom(SHARE_MEDIA.WEIXIN);

		System.out.println("===============start 99  "+plat);
        if(this.GetUserInfo("errcode") != null){
        	System.out.print(this.GetUserInfo("errcode"));
	        System.out.println(" ============================================start 2222 =============================================================");
			JSONObject jObject = new JSONObject();
	        System.out.println(" ============================================start 1111 =============================================================");
			try 
			{
				jObject.put("valid", false);
				jObject.put("errorcode", GetUserInfo("errcode"));
    			ThirdParty.getInstance().myLoginListener.onLoginFail(plat, jObject.toString());
			} 
			catch (JSONException e) 
			{
		        System.out.println(" ============================================start 2 =============================================================");
    			ThirdParty.getInstance().myLoginListener.onLoginFail(plat, "");
				e.printStackTrace();
			}
        }else{
        		//鐧婚檰鎴愬姛                            	
            System.out.println(" ============================================start 3 =============================================================");
            JSONObject jObject = new JSONObject(userInfoMap);
            try 
            {
                System.out.println(" ============================================start 4 =============================================================");
        		jObject.put("valid", true);
        		jObject.put("um_code", userInfoMap);
        		ThirdParty.getInstance().myLoginListener.onLoginSuccess(plat,userInfoResult);
        	} 
            catch (JSONException e) 
        	{
        		ThirdParty.getInstance().myLoginListener.onLoginFail(plat, "");
        		e.printStackTrace();
        	}
        }
        //https://api.weixin.qq.com/sns/userinfo?access_token=14_0dncWe3pJt-hZASZ29IsN13e_TAEy9x6XckC700Gw42q1Uro0bkZMZ07-Rx-YEb2gVbJ8qj3hRxb9dZ0atAmHrFoXu3c4X_xLuHe-LT2DLM&openid=wx26f61c962ed021e3
        finish();
   }
    
    private Map<String,String> tokenMap = new HashMap();
    private Map<String,String> userInfoMap = new HashMap();
    
    private void SetToken(String str){
    	tokenMap = new HashMap();
        String strr = str.replace("{", "").replace("}", "");
        System.out.println(strr);
        String[] arrayTmp = strr.split(",");
        for(int i=0;i< arrayTmp.length;i++){
        	String key = arrayTmp[i].split(":")[0].replace("\"", ""); 
        	String value = arrayTmp[i].split(":")[1].replace("\"", "");
        	tokenMap.put(key, value);
        }
    }
    private String GetToken(String key){
    	System.out.println("获取:"+key);
    	System.out.println("长度:"+tokenMap.size());
        for (Map.Entry<String, String> entry : tokenMap.entrySet()) {
            System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue());
        }
    	if(tokenMap.containsKey(key)){
    		return tokenMap.get(key);
    	}
    	return null;
    }
    
    private void SetUserInfo(String str){
    	userInfoMap = new HashMap();
        String strr = str.replace("{", "").replace("}", "");
        System.out.println(strr);
        String[] arrayTmp = strr.split(",");
        for(int i=0;i< arrayTmp.length;i++){
        	String key = arrayTmp[i].split(":")[0]; 
        	String value = arrayTmp[i].split(":")[1];
        	userInfoMap.put(key, value);
        }
    }
    private String GetUserInfo(String key){
    	System.out.println("获取:"+key);
    	System.out.println("长度:"+userInfoMap.size());
        for (Map.Entry<String, String> entry : userInfoMap.entrySet()) {
            System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue());
        }
    	if(userInfoMap.containsKey(key)){
    		return userInfoMap.get(key);
    	}
    	return null;
    }
    private String ChangeString(String str){
    	if(str == "nickname"){
    		str = "screen_name";
    	}else if (str == "headimgurl"){
    		str = "profile_image_url";
    	}else if (str == "sex"){
    		str = "gender";
    	}
    	return str;
    }
}
	private void doWeChatLogin(final OnLoginListener listener)
	{
		if (false == mShareAPI.isInstall(m_Context, SHARE_MEDIA.WEIXIN))
		{
			listener.onLoginFail(PLATFORM.WECHAT, "寰俊瀹㈡埛绔湭瀹夎,鏃犳硶鎺堟潈鐧婚檰");
			return;
		}
		
		if (null == m_Context || false == ThirdDefine.bConfigWeChat)
		{
			listener.onLoginFail(PLATFORM.WECHAT, "");
			return;
		}
		
		SendAuth.Req req = new SendAuth.Req();
		//授权读取用户信息
		req.scope = "snsapi_userinfo";
		//自定义信息
		req.state = "wechat_sdk_demo_test";
		//向微信发送请求
		myWXApi.sendReq(req);		
}

第二个是请求微信的AccessToken 第一段是请求回调的处理

还有问题的话,可加我的群,我们继续讨论

最好 GoodLucy

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一、荣耀短信验证开发流程说明 现在的很多游戏,都有短信验证登录的功能,特别是国内比较火的棋牌系统,有的甚至直接短信验证码为登录密码,这确实是一个好的思路,保证了密码不被盗。但是,短信验证怎么实现呢?很多开发者有时会出现暂时的迷茫。下面我就把大概的思路告诉大家。一、申请短信通道,国内的短信通道很多,不同的通道速度不一样,我们在申请时要一个基本原则就是速度要快,基本上要发送即接收了,客户不可能等的。国内调查发现,客户等页打开的时间是最长不超过5秒,短信接收的时间最长不超过10秒。当然,特殊的短信例外,比如银行确认短信等涉及财产全的短信;二、手机客户端或PC客户端开发出相应的短信验证功能,进行手机号码的接收,接收到手机号码后,直接发送服务器端,这里当然不能客户端集成直接发,那就会被别人利用了。服务器端发送短信。客户接收到短信后就可以进行验证。 二、荣耀棋牌机器人配置完了不进游戏不上桌 在荣耀机器人配置中经常遇到机器人配置完了不进游戏,不上桌。这个问题一般是几方面的问题造成的。 一、你的这款游戏是否支持机器人,支持的话就服务器端会有相应的机器人组件。 二、支持机器人,但是机器人组件没在服务器端目录,或没有。 三、这个游戏是否配置了机器人,有时可能是配置错了,好好的详细再查一下吧。 四、机器人数量不够,已经用尽。 五、游戏机器人没有开启。 基本上就这些原因了,每个都要细细的查,这样才能发现问题。 可以咨询q-q457189 三、荣耀手机端在复制文本时提示“复制内容非法”的解决办法 在荣耀开发调试过程中,复制文本时,提示“复制非法内容”,开始吓一跳,没有什么非法内容啊?也没有禁词,也没有国家不允许的内容。最后通过程序查看,原来是平台的问题。换、苹果系统就好了。 四、最新出炉的荣耀机器人添加视频教程 最新出炉的荣耀机器人添加视频教程,包括机器人的导入,机器人的分配,机器人的配置,房间的配置等。全方位的讲解了荣耀机器人的管理添加过程。可以联系我获取下载地址。Q-Q457189 五、荣耀端的签名与打包 第一、打开ADT,选择file-import,加载荣耀项目。 第二,右键项目,选择export,进入下图界面,选择android,然后再选择Export Android Application,然后选择下一步,这里默认,再进行下一步。 第三步,这里选择Create new keystore,Location选择存储路径,Passowrd输入签名密码,Confirm确认密码。然后进行下一步 第四步,填写好各个相关信息,注意密码那里和上个页面的一致。其它随便。然后下一步,选择打包APK文件的存储路径。 第五步,点击finish等待程序签名与APK的生成,结束。 六、荣耀游戏启动时出现“正在初始化组件”启动失败 【 2017-11-10 08:35:33 】[ 游戏 ] 房间参数加载成功 【 2017-11-10 08:35:35 】正在初始化组件... 【 2017-11-10 08:36:41 】服务启动失败 【 2017-11-10 08:36:41 】服务停止成功 这样的问题有两个原因造成 一、开发库是否正确,不正确,重新生成开发库。 二、游戏kindid设置是否正确,不正确修改。 这两个问题解决了,问题就迎刃而解了。 祝你好运。 七、荣耀"定时器异常:TimerID=2“错误 在荣耀进行机器人操作或其它操作时,经常会出现"定时器异常:TimerID=2“错误,这个错误怎么处理呢? 这里提示其实已经很明白了,就是定时器错误。 一和运行库有关系,二和操作有关。 八、荣耀棋牌游戏机器人的添加 在棋牌运营过程中,没有机器人开始是很难运行的,没有人气,那么,荣耀棋牌游戏怎么添加机器人呢?下面简单说明 加机器人首先要有一些机器人的名字,这些名字可以自己搜集,也可以用上别人搜集的,比如Q-Q名。然后用脚本一键导入。 用户信息导入后,就可以用机器人工具进行房间的机器人分配了。 九、eclipse加载荣耀时红叉an outline is not available报错的处理 很多时候这些错误不是程序问题造成,而是环境问题造成。这个主要是第三方的类库与cocos2d-x的支持文件没有加载的原因造成,加载了就可以正常运行了。 十、荣耀手机端分享时出现“由于不支持的分享类型,无法分享到微信“的解决办法 去腾讯开放平台申请账号,审核通过后,在开放平台添加相应信息,就可以正常分享了。 十一、荣耀vs生成解决方案时出现“出现未能写入日志,请求的操作无法在使用用户映射区域打开的文件上执行“错误 一、定位文件,看是不是只读。 二、删除文件试一下,看看是不是文件被占用,如果删除不了,就是被占用,可以查是哪个程序占用,不行重启服务器试一下。 三、是不是路径有问题。 十二、荣耀房卡游戏在手机客户端不出现房卡房间 最近,有个别友找我,的架设荣耀游戏时,服务器端开了房卡房间,但是在手机端没有房间显示,更不用谈进入房间了。经查,程序没有问题,相同的源码,相同的环境配置,就是不出现房卡房间,最后我也是无语了。我告诉他,你人品有问题。但是问题还是得查出原因。经过详细的分析研究,最后是他电脑CPU的问题。费了十天的时间,经历了太多的误解与磨难。真不容易。 十三、荣耀android编译时出现“未找到工程,Android 目标平台本应该大于或等于 21” 这个是因为sdk本设置问题造成的,设置正确相应的sdk本,就可以了。 十四、荣耀微信登录没有反应失败的解决办法 荣耀登录方式有了很大的变化,三种形式:账号登录、游客登陆与微信登陆。在开发与使用棋牌荣耀时账号登陆与游客登录时基本上都没有什么问题,但是在使用微信登录时会遇到点微信登录没有反应,有反应后进不去等等问题。遇到这样的情况,是因为腾讯开放平台配置问题,注册开放平台,进行客户端相应参数的设置就可以了。 十五、在荣耀添加房卡游戏时,经常有友遇到进房卡房间弹出到大厅登录界面 这个问题经常有友咨询,经过调试,最后确定是开发库不配套的问题。经过更新,重新生成开发库,问题解决。 十六、荣耀斗地主第三个人进入开始时弹出 荣耀斗地主第三个人进入开始时弹出,这样的问题经常有友遇到。 经过问题分析,代码查看,是开发库的问题,解决了开发库问题,就正常了。 十七、荣耀李奎劈鱼游戏,捕鱼游戏提示“非法组件的解决办法” 在使用荣耀时,捕鱼进入游戏时提示非法组件,如下图,这个是因为未授权的原因,只要授权就可以了。授权的方法可以联系 十八、荣耀大厅本更新出现“下载失败,CODE 7,是否重试?”的错误 荣耀,有一些客户反应,在大厅本更新后,客户端下载更新出现了,“下载失败,CODE 7,是否重试?”的错误。这个是一配置的错误问题造成的,修改后台更新配置。 十九、荣耀棋牌中心服务器显示“服务启动失败”的原因 荣耀棋牌,在启动中心服务器时,显示“服务启动失败”,如下图。这是因为开发库不配套的问题产生的。更新了开发库,问题解决。 二十、荣耀手机端登录提示“络错误:5”解决办法 这是因为服务器端授权问题、内核问题或是手机端的配置问题造成的,请看内核是否为248K的内核,并检查络模块是否为34.7K的络模块,如果没有问题请检查手机端相应位置的配置信息。配置一定要细心做好。如果还不行可以 二十一、荣耀房卡房间分享给好友,好友点击后空白,或没反应的解决办法 最近总遇到友反应,荣耀房卡游戏,在创建房间后,邀请好友等操作后。好友点击分享链接没反应或是空白,或是出错。这样的问题,在进行代码修改和相应的设置后,问题解决。 二十二、荣耀启动游戏时提示“相应的游戏服务组件信息不存在,房间创建失败” 这个是因为游戏的kindid与创建的游戏的kindid不一致造成的,修改游戏的kindid为你的游戏的kindid就可以了。 二十三、荣耀出现在sys.servers中找不到服务器'rytreasuredblink'。请验证指定的服务器名称是否正确 这个问题是因为数据库是附加的,脚本代码里面的创建链接服务器脚本没有执行,执行一下就好了。Q-Q:457189 二十四、荣耀系统模块编译出现fatal error c1083:无法打开包含文件“d3d9.h” :no such fil 这个是因为没有把directx sdk添加到项目引用中。加入directx sdk的引用就可以了。Q-Q:457189 二十五、荣耀苹果端ipa打包流程说明 在荣耀系统开发,游戏开发,界面cocos和lua开发等过程后,要进行发布和打包。pc端与端相对简单,苹果端的修改、发布与打包成了多数开发者的一个主要问题。下面就说说这个苹果打包的基本过程。 一、环境准备 macos电脑一台,装xcodes开发工作,同时装证书服务器与相关软件环境。 二、系统修改 xcodes打开项目工程,进行开发者的配置与发布选项的配置,进行游戏名称与本号修改等,进行编译,发布等。这里面的游戏开发者最好是企业开发者账号,因为这样就不用上传到苹果商店了。可以随便分发。 三、导出ipa文件,上传到fir.im,蒲公英之类的站,客户下载就行了。 Q-Q:457189 二十六、荣耀游戏服务器出现"MDM_GF_GAME 游戏命令返回 false" 荣耀游戏服务器出现"MDM_GF_GAME 游戏命令返回 false",这是因为游戏客户端数据与服务器端不匹配造成的,修改客户端后,问题解决。 二十七、荣耀棋牌游戏输赢控制设置 在游戏使用过程中,输赢控制是必不可少的,那怎么怎么进行游戏控制呢?下面简单简介。 一、控制账号的注册。 二、控制客户端的生成。 三、进行控制。 就这三步即可实现控制。 二十八、荣耀手机端与pc端热更新的配置 手机端的热更新是,首先设置好本号,然后生成手机端,生成后,把生成的文件全部上传到站更新目录里面,然后管理后台配置更新目录与本,就可以了。pc端的更新是上传到相应目录,然后生成更新本信息。 二十九、荣耀最新视频教程 荣耀最新视频教程,从开始的基础操作,架设,到最后的修改编译,苹果修改编译等。 荣耀教程一认识荣耀 荣耀教程二环境搭建 荣耀教程三数据库的附加和导入 荣耀教程四站管理后,台和代,理的搭建 荣耀教程五PC端系统的修改和编译 荣耀教程六服务器端的搭建 荣耀教程七PC客户端的打包 荣耀教程八子游戏的添加 荣耀教程九端的签名 荣耀教程十苹果环境的搭建 荣耀教程十一苹果端ios的修改和打包 荣耀教程十二手机端的修改和编译 荣耀教程十三手机端热更新的配置 在系统的使用与运营过程中,会有很多问题,这些教程只要认真学习,都会迎刃而解。当然在解决的过程中也要动脑。 实在解决不了,可以互相沟通Q-Q:457189 三十、荣耀服务器端启动出现“您的服务器组件没有得到合法授权,服务器将会以受限模式运行” 这个就是因为内核组件没有破解,然后认证没有通过。建议去公司购买正和正授权。Q-Q:457189 三十一、荣耀棋牌教程之一开发环境搭建 一、装JDK1.8,下载jdk1.8,然后双击装,下一步直到装完成,装的时候记住装目录,我的全部默认装,目录为C:\Program Files\Java\Jdk1.8。装完成后,进行环境变量的配置。系统变量中进行JAVA_HOME、CLASSPATH、Path三个变量的配置,有的编辑,没有的新建。新建JAVA_HOME对应C:\Program Files\Java\Jdk1.8、新建CLASSPATH对应.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar、编辑Path的最后加上;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin。最后打开CMD窗口进行测试是否装成功。 二、把winrar加入环境变量,使winrar可以在命令行下直接运行。;C:\Program Files\WinRAR 三、装cocos,这里我们使用的是cocos2d-x 3.10,3.10本,Cocos2d-x与cocos整合升级为Cocos引擎,下载后是exe程序,双击直接装,很简单。 四、下载自动提示补全词典,我还下载了cocos2dx-3.10-api.lua,把下载的词典放到,我的文档下面的BabeLua\Completion文件夹中,再进入lua项目,输入代码时就有相应的提示了。 五、装python-2.7.10,双击装,下一步直到完成,在装时选择一下目录,我装到了c盘的python27目录。装完后进行环境变量的配置。在系统变量的path最后加上;C:\Python27,pyghon装完成。打开CMD窗口进行测试。 六、装ant 1.9.6,下载ant 1.9.6,解压,这里我们解压到C盘的ant196目录。然后配置环境变量,没有的项创建,有的项编辑。 ANT_HOME C:\ant196 path C:\ant196\bin classpath C:\ant196\lib 七、装adt,下载ADT后解压,我们这里解压到C盘的adt-bundle-windows-x86-20140624目录。 运行eclipse,打开help,install new software,名称输入adt_plugin,adt插件的站点为:https://dl-ssl.google.com/android/eclipse/ 将“com.android.ide.eclipse.ndk_23.0.2.1259578.jar”复制到"C:\adt-bundle-windows-x86-20140624\eclipse\plugins\com.android.ide.eclipse.ndk_23.0.2.1259578.jar" 添加环境变量 ANDROID_SDK_ROOT 为:C:\adt-bundle-windows-x86-20140624\sdk; 八、装NDK 把android-ndk-r10d-windows-x86_64复制到要装的目录,双击android-ndk-r10d-windows-x86_64进行解压。这里我们解压后的目录为c盘的android-ndk-r10d目录。 启动"C:\adt-bundle-windows-x86-20140624\eclipse\eclipse.exe" 选择菜单栏上的[Window->Perferences->Android->NDK]设置 NDK Loaction 为C:\android-ndk-r10d; 添加环境变量 NDK_ROOT 为:C:\android-ndk-r10d 在环境变量 PATH 下追加 :%NDK_ROOT%; 至此,荣耀开发环境基本搭建完成。 q-q457189 三十二、荣耀进入手机客户端显示“获取服务器列表失败,是否重试?” 这个问题有原因有几个,一可能是服务器端的IP连接设置有问题;二是游戏更新有问题。 Q-Q457189 三十三、荣耀或其它项目出现Application cannot be exported due to the erro 荣耀或其它项目出现Application cannot be exported due to the error(s) below.错误的处理方法 此错误的意思是你的项目存在编译错误,您必须处理了全部错误才可以进行导出操作。 三十四、荣耀更新工具更新文件创建失败怎么处理? 三十五、荣耀大厅里进游戏一闪一闪的进不去,正在检查怎么处理? 三十六、荣耀服务端启动出现“请注意,您正在使用未被授权的组件,无法启动服务器,请联系深圳科技有限公司!”怎么处理? 三十七、荣耀开发环境怎么配置? 三十八、荣耀手机端热更新怎么配置? 三十九、荣耀进入手机客户端显示“获取服务器列表失败,是否重试?”怎么处理? 四十、荣耀手机端生成时出现MakeMD5List.exe 应用程序错误的解决办法 这是因为动态链接库本不对,更新就好了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值