cocos2d jsb 打包 Android APK
1.首先要会普通的cpp 打包成Android APK
下面所说的是在cocos2d-x 2.2.2 或者 2.3 版本号中。本文在Eclipse总用ndk编译cocos2d-x。
老生常谈cocos2d-x JSB不是简单的js代码,涉及到C++代码,假设是Android的话又涉及到Java代码,有点复杂,假设搞过Android下的Jni的话会熟悉些。能够看下这篇文章:《Android Jni 样例 Hello JNI,ndk》
Android为了提高开发人员开发应用的速度,减少难度,选择了Java,可是也能够用c或者c++,在某个版本号引入了ndk。cocos2d-x是用C++开发的,所以刚好也能够在Android中使用,可是就涉及到ndk了。事实上假设有Linux环境,Android完整源代码,ndk编译还是比較easy的。可是大部分cocos2d-x都用windows开发,而在windows下搞ndk就比較复杂。
2.首先是一些软件准备
安装JDK,弄好环境变量,略。
去www.android.com下载ADT
google搜索ndk下载最新ndk,环境变量设置
去www.cocos2d-x.org 下载2.3版本号的cocos2d-x,解压。
google搜索python 27 ,环境变量设置 (老的cocos2d-x版本号不是用python 来创建项目的,vs和xcode都有模版,刚開始比較好用,可是跨平台比較麻烦,后来改用python,仅仅须要一次创建,跨平台比較好用)
把C:\Python27;增加到PATH中。
这里还是扯下环境变量的作用,非常多人不熟悉环境变量,来看下Python这个样例,如果我是安装在C盘,打开C:\Python27, 是不是看到一个exe叫做python.exe,它能够解析python代码,可是每次都要弄完整路径来解析会非常麻烦的,所以就把C:\Python27增加到PATH中,这样不管在哪个文件夹下都能够直接訪问到phthon.exe了。
3.首先建立一个javascript的cocos2d-x项目
进入cocos2d-x/tools/project-creator 文件夹,win7的,能够按住Shift,右击鼠标"此处打开命令窗体",输入python create_project.py -project TestJs -package com.test.example -language javascript
基本能够。大家能够打开create_project.py查看下源代码,里面就有创建的样例的。也能够把以下的代码保存到txt中,后缀改成bat,双击执行下,但本质还是执行create_project.py。
@echo off
set /p projectName=请输入项目名称(比如:test):
if "%projectName%"=="" goto inputError
set /p packageName=请输入项目包名(比如:org.cocos2dx.test):
if "%packageName%"=="" goto inputError
set /p projectLanguage=请输入编程语言(比如:选填cpp ,lua ,javascript):
if "%projectLanguage%"=="" goto inputError
python create_project.py -project %projectName% -package %packageName% -language %projectLanguage%
pause :inputError
@echo 项目名称或者包标示名不能为空!
pause
复制JS代码到assets文件夹。这里要扯下,Android开发一般把图片,xml等资源放在res文件夹下的,等打包成APK的时候,会打包成一个文件。Java代码中也非常easy訪问的。可是除了标准的资源,像js,音乐等仅仅能放在assets下了,打包成APK也不会是一个文件,解压APK,assets里面的资源还是原来的,不会做不论什么处理。这些jsb开头的js好像要下载Cocos2d-JS才有。
注意到这里有一个文件叫cocos2d-jsb.js ,这个是启动js,要跟Classes/AppDelegate.cpp中的相应起来,applicationDidFinishLaunching中有个调用 ScriptingCore::getInstance()->runScript("cocos2d-jsb.js");
3.ADT中导入两个项目
在左边,右击Import
位置是以下两个地方:
cocos2d-x-2.3\cocos2dx\platform\android\java
cocos2d-x-2.3\projects\TestJs\proj.android
4.设置Build 属性
打开菜单Window->Preferences->Android->NDK 编辑NDK路径到你NDK的路径,注意我这里改动了默认的ndk名字。通常是比較长。
右击TestJs项目,选择Properties->Builders->New->Program,
在Main标签下的Location,选择Browse File Systerm...,选择到android NDK以下的ndk-build.cmd文件 。
Working Directory,选择Browse Workspace...,选择本项目。
在Environment标签下,点击new,
Name:NDK_MODULE_PATH
Value:
C:\D4\cocos2d-x-2.3;C:\D4\cocos2d-x-2.3\cocos2dx\platform\third_party\android\prebuilt(注意自己的实际文件夹,这里定义了两个值,一个是cocos2d引擎的根文件夹,另外一个是....prebuilt)
选择Ok确认,返回Builders界面,去掉CDT Builder前面的勾选,并将你自己刚刚创建的Builder移动到最上面,所有配置好之后OK确认。
连接手机,执行应该就能够了。APK会生成在Bin文件夹下,所有的C++文件会打包成一个libcocos2djs.so放在libs/armeabi文件夹下。
5.常见错误
1."bash" is not found in PATH,这个错误我也不知道怎么就攻克了,用Eclipse编译有时候就是会抽风,多Project->Clean几次,或者删除项目又一次Import试试,再或者仅仅能下载cygwin了,把cygwin的bin文件夹增加到系统环境变量中。
2.Syntax and Semantic Errors
,这个错误是点击了jni文件夹下的main.cpp产生的,能够在Eclipse中对这个错误进行关闭:右击你的项目 Properties-> C/C++ General -> Code Analysis -> Syntax and Semantic Errors
,去掉勾。
3.
unable to process assets while packaging xxx,这个错误是由于assets的权限不够,像我在Win7的C盘中建立项目,就会有这个问题,在proj.android文件夹中,按shift右击打开命令窗体,给assets较高权限就可以: chmod 777 -R assets/
4.还有些错误,记得右击项目属性,打开Builder删除出错的Builder.
5。还有个错误关于模拟器不支持OpenglES2.0的,能够用BlueStacks软件,它比ADT中的模拟器强大非常多。当然不妨用真机。
6.TestJs APK下载:
http://www.waitingfy.com/archives/1126/testjs
參考:
cocos2d jsb Android
cocos2d jsb 打包 Android APK的更多相关文章
- 【ReactNative】Mac下分分钟打包 Android apk
时间:2016-11-20 09:17:07 地址:https://github.com/zhongxia245/blog/issues/52 Mac 下 ReactNative如何打包构建Andro ...
- Flutter 打包Android APK 笔记与事项
获取一个KEY 首先要获取 你的 打包应用的一个 key ,这一步其实和 在AndroidStudio 上打包 APK 一样,都是要注册一个本地的 key,key 其实也就是 jks文件啦. 如果已经 ...
- weex打包android apk采坑之旅(windows)
1. npm install weex-toolkit -g 后weex命令不起作用 ,解决办法把weex.cmd所在的目录添加到环境变量PATH 2.weex命令每次报找不到文件'C:\Progra ...
- HBuilder打包Android apk 支付不了问题解决
第一步: 安卓生成自有证书:到JRE的bin目录下,运行keytool命令:cd C:\Program Files\Java\jre1.8.0_91\binkeytool -genkey -alias ...
- cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程)
链接地址:http://www.cocoachina.com/bbs/read.php?tid=333937 cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程 ...
- Cocos2d-x 3.2 学习笔记(四)学习打包Android平台APK!
从cocos2dx 3.2项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷! (涉及到3.1.1版本的,请自动对应3.2版本,3.x版本的环境搭建都是一样的) ...
- Android 手机卫士--打包生成apk维护到服务器
项目打包生成apk过程: 1.生成签名文件,并且指定所在位置 2.使用生成的签名文件,给工程打包生成一个apk 本文地址:http://www.cnblogs.com/wuyudong/p/59033 ...
- [Android Pro] Android打包一个Apk后,如何查看它的VersionCode、VersionName 等等。
Android打包成Apk后,其实是一个压缩文件,我们用winrar打开也能看到里面的文件结构.还能看到AndroidManifest.但是里面的内容有点问题. 不知道是因为加密还是Android就是 ...
- eclipse 和 android studio 打包签名apk问题
首先,我使用eclipse打包了一个签名apk 然后,我使用同一个签名文件在android studio 打包同一个项目 接下来,首先安装eclipse 打包的apk,然后安装android stud ...
随机推荐
- Android应用开发学习—Toast使用方法大全
Toast 是一个 View 视图,快速的为用户显示少量的信息. Toast 在应用程序上浮动显示信息给用户,它永远不会获得焦点,不影响用户的输入等操作,主要用于 一些帮助 / 提示. Toast 最 ...
- anything vs everything
everything多用于肯定而anything多用于否定和疑问语气 anything 1) 任何事情/东西,可以用在肯定句/否定句/疑问句中.如:You can take anything you ...
- php常用正则
平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2. "^\d+$" //非负整数(正整数 + 0) 3. "^[0-9]*[1 ...
- [转]Linux的chattr与lsattr命令详解
转自:http://www.cnblogs.com/yangxia-test/archive/2013/05/24/3096410.html 这两个命令是用来查看和改变文件.目录属性的,与chmod这 ...
- Android之操作SQLite
一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的 ...
- Juniti学习总结
JUnit简介 JUnit是由 Erich Gamma和Kent Beck编写的一个回归测试框架(regression testing framework).JUnit测试是程序员测试,即所谓白盒测试 ...
- Tcl之group arguments
1 doubel quotes This allows substitutions to occur within the quotations - or "interpolation&qu ...
- 第三百二十九天 how can I 坚持
今天莫名其妙的烦,,都是上午搞电脑搞的,好乱,心情很差,又感觉有那么多事. 希望周六不要加班啊.很烦,不想加班. 貌似事情也不是很多.但是为什么会感觉乱七八糟的呢,力不从心的感觉,是能力不行吗. 晚上 ...
- JSON如何序列图片
图片采用JSON格式传输的话,需要把图片转成Base64格式. 首先把图片转成流:Image1.Picture.Graphic.SaveToStream(ss);然后编码成base64格式的:Enco ...
- TQImport3XLS.Map
property Map: TStrings; 设置数据集字段和Excel单元格之间定义映射属性以下列方式: FieldName=CellRange 导入单独的单元格 Field1=A1 Field1 ...