《暗黑世界》安卓APK 编译流程详细说明教程!(图文)
原地址:http://bbs.gameres.com/forum.php?mod=viewthread&tid=223671
关于开发环境的搭建,之前的相关文档已经很详细的说明,对环境的搭建请参考以前的相关文档,如有问题,及时在论坛里提问,会有管理人员快速解答,此文档主要针对eclipse下安卓编译.
首先肯定是把暗黑世界的源码导入eclipse,源码导入进来后,就开始进行编译的准备工作,这里首先需要将Classes里面的.cpp文件和和相关的文件夹路径写进来,打开eclipse下的暗黑世界的工程,打开jni文件夹,找到Android.mk这个文件,双击打开.
<ignore_js_op>
打开以后将所有的.cpp文件的名称依次写进去,如下图所示一部分.cpp文件.
<ignore_js_op>
当然这么的.cpp文件全都手动填进去会很麻烦,在此可以使用一个shell脚本自动生成所有的.cpp文件清单,脚本的在此文档的附件中(list.sh).如何使用这个脚本呢?打开终端,依次输入如下命令
- cd $COCOS2DX_ROOT //进入cocos2d-x的根目录
- ls //列出所有目录,找到projects
- cd projects //进入projects目录
- ls //找到暗黑世界的源码,进入proj.android目录
- cd tsDemo //...
- ls //...
- cd proj.android //...
- ls //...
- cd jni //...
- ls //进入此目录后会看见清单中有个list.sh文件
- ./list.sh ../../Classes //使用list.sh列出Classes的.ccp文件清单
复制代码
<ignore_js_op>
将生成的.cpp清单全都复制,然后粘贴进入android.mk里面的对应位置即可.
接下来还得把Classes里面的一些文件添加进来,具体的添加位置如下图所示.
<ignore_js_op>
添加文件夹路径时请注意,此处是为了去找Classes的代码,所以此处的路径可以不写完整的路径,但在IDE中,比如Xcode中,一定要把缺省的路径添加进去.
好啦!准备工作做好了,开始编译代码,右击工程,Run As->Android Application,开始编译,但此时可能会报Can't find NDK.Please define NDK,如果出现这种错误,那么手动把NDK的添加进工程,Project->Properties->C/C++ Build->Environment,在右边的区域,点击Add,按下图所示name为NDK_ROOT,然后在Value里写入自己的NDK路径即可.
<ignore_js_op>
问题都解决了,现在开始编译源码,整个过程会花费一段时间(如果编译过程出现其他问题,一定记得去论坛发帖,会有相关人员及时给与回复),编译完成后,在工程bin目录下会看见生成的.apk安装包,如果想看编译后运行的效果,还是直接接入真机为好,android自带模拟器的速度实在不敢恭维.
Run->Run Configurations->Android Application->tsDemo,在右边选择Target,选中Always prompt to pick device,这样连上真机以后,每次运行会自动识别你的设备去安装.
<ignore_js_op>
运行以后的程序显示出来可能是横屏的,得自己去手动修改android的配置文件,在bin目录下找到AndroidManifest.xml,打开后,看见里面有很多项,具体每一项是什么意思,网上很多,此处不做太多的解释,找到这android:screenOriention,修改里面的值为portrait即可正常运行程序.
在res目录下的values目录下有一个strings.xml文件,打开后在version后面里可以设置版本号,string标签后即可修改安装在设备上的apk的名字,在此目录下还有几个其他的文件夹,从文件夹的名字就可以看出,他们分别是为放置不同分辨率的apk的icon准备的.
最后,大家如果有问题一定记得去论坛发帖噢!
list.sh在附件中“免铜板”下载!
《暗黑世界》安卓APK 编译流程详细说明教程!(图文)的更多相关文章
- cocos2dx 3.x(在Mac平台下利用Eclipse打包安卓apk安装包详细教程)
最近在学习cocos2dx在MAC上如何打包apk,今天先把安装JDK和ANT的过程记来. 首先,打开终端,输入"java -version" 点击回车后,出现如下提示: 我们的M ...
- cocos2d-x游戏开发(十七)NDK+ant编译暗黑世界
个人原创,欢迎转载http://blog.csdn.net/dawn_moon/article/details/12308967 9秒论坛的客户端暗黑世界,ios已经跑过了,今天搞了一下安卓的,记录一 ...
- 安卓---apk反编译
转自:http://blog.csdn.net/vipzjyno1/article/details/21039349 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮 ...
- 专注于C#.Net WPF软件开发-软件反编译-软件破解-逆向-靖芯科技-包括安卓APK反编译
靖芯科技提供.Net软件开发,软件修改定制二次开发,软件破解,反编译,逆向等各项优质服务: 包括安卓APK软件反编译. 包括但不限于C#,WPF,Surface,Winform,Asp.net.JAV ...
- IONIC 打包安卓apk详细过程
参照以下链接: https://blog.csdn.net/qq_20264891/article/details/79319408 当 cordova 项目安装的 android 平台版本 与 系统 ...
- 安卓apk反编译
在win环境反编译安卓APP的.apk文件 安卓apk 反编译为 Java源码图文教程 Android安全攻防战,反编译与混淆技术完全解析(上)
- 《暗黑世界GM管理后台系统》部署+功能说明文档
http://www.9miao.com/product-10-1073.html <暗黑世界GM管理后台系统>部署+功能说明文档 <暗黑世界GM管理后台系统>部署+功能说明文 ...
- Android Activity启动流程, app启动流程,APK打包流程, APK安装过程
1.Activity启动流程 (7.0版本之前) 从startActivity()开始,最终都会调用startActivityForResult() 在该方法里面会调用Instrumentation. ...
- Firefly卡牌手游《暗黑世界V1.5》服务器端源码+GM管理后台源码
http://www.9miao.com/content-6-304.html Firefly卡牌手游<暗黑世界V1.5>服务器端源码+GM管理后台源码 关于<暗黑世界V1.5> ...
随机推荐
- 解决codeforces访问慢的问题
转载至:http://blog.csdn.net/wmx16835/article/details/38639451 前阵子打Codeforces(以下简称CF),每次比赛的时候都要等待网页刷新.不是 ...
- jquery checkbox全选,全不选,反选方法,jquery checkbox全选只能操作一次
jquery checkbox全选,全不选,反选方法, jquery checkbox全选只能操作一次, jquery checkbox全选只有第一次成功 >>>>>&g ...
- Visual Studio 2015中的常用调试技巧分享
.NET 技术交流群:337901356 欢迎您的加入! 为什么要学习调试? 调试(Debug)是作为一个程序员必须要学会的东西,学会调试可以极大的提高开发效率,排错时间,很多人不喜欢调试,但我认为这 ...
- web app开发中 iPhone、iPad默认按钮样式问题
webapp开发过程中,用html5+css3很方便,而且可以很方便的编译到Android ios等不同平台,但是ios需要单独处理一下,不然会出现一些想象不到的问题.下面就介绍一下各种问题的解决方法 ...
- asp.net 配置二级域名的共享session,并实现sso单点登录
公司最近做了一个新网站.原先网站的网址是www.xxxx.com.新做的网站要部署到info.xxxx.com.这两个网站要实现单点登录.而新老网站本身机构的原因,对于登录状态的判断,说白了就是对于s ...
- ASP.NET 常识
1..NET是什么? .Net全称.NET Framework是一个开发和运行环境, 该战略是微软的一项全新创意, 它将使得"互联网行业进入一 ...
- C# 数据类型映射 (SQLite,MySQL,MSSQL,Oracle)
一.C# vs SQLite: C# SQLite 字段名 类型 库类型 GetFieldType(#) 转换 备注 F_BOOL bool BIT NOT NULL Boolean F_BOOL_N ...
- OC1_数组创建
// // main.m // OC1_数组创建 // // Created by zhangxueming on 15/6/11. // Copyright (c) 2015年 zhangxuemi ...
- 对比MySQL,什么场景MongoDB更适用
原文链接: http://page.factj.com/blog/p/4078 MongoDB已经流行了很长一段时间,相对于MySQL,究竟什么场景更需要用MongoDB?下面是一些总结. 更高的写入 ...
- 错误:variable `xxx' has initializer but incomplete type
错误:variable `xxx' has initializer but incomplete type 原因:xxx对应的类型没有找到,只把xxx声明了但是没给出定义.编译器无从确认你调用的构造函 ...