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 ...
随机推荐
- MongoDB Auto-Sharding(自动分片)入门介绍
MongoDB是10gen团队开发的一款面向文档的NoSQL数据库.最近一年多以来,MongoDB被越来越多的大型网站应用到生产环境中,比较著名的有Foursquare, bit.ly, Source ...
- js String方法集合
//https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String//返回对应索引的字符 ...
- JDBC项目实践
这几天学习了JDBC的接口,从简单的连接,到不断地对JDBC的代码进行优化,最后到实体类,DAO类的设计,现在对这几天所学做一个总结: 首先是软件的系统组成: 数据库中有很多的表:Customer,D ...
- HighChart 实现从后台取数据来实时更新柱状和折线组图
前段时间公司让弄图表,给我说有HighCharts这个js插件,于是上网上搜,由于本人是写后端的,对于JavaScript和jQuery不是很熟悉,虽然找到了模板,但是还是不明白,所以一点一点的改,但 ...
- ansible命令执行模块使用
ansible命令执行模块使用 1.命令执行模块-command 在远程节点上运行命令. 命令模块使用命令名称,接上空格-的分割符作为参数使用,但是不支持管道符和变量等,如果要使用这些,那么可以使用s ...
- 装饰模式decorator
C++设计模式——装饰模式 前言 在实际开发时,你有没有碰到过这种问题:开发一个类,封装了一个对象的核心操作,而这些操作就是客户使用该类时都会去调用的操作:而有一些非核心的操作,可能会使用,也可能不会 ...
- mysql 语句碎片
1. find_in_set('''$ip''',CONCAT('''', REPLACE( REPLACE(w_ip,',',''',''') ,'-',''',''') 2. grant all ...
- 如何判断ios设备是否是高清屏幕
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 3.2f) { CGRect winRect = [[UIScreen m ...
- NHibernate的简单例子
NHibernate的简单例子 @(编程) [TOC] 因为项目需求,搭了一个NHibernate的例子,中间遇到了一些问题,通过各种方法解决了,在这里记录一下最后的结果. 1. 需要的dll Com ...
- Win7 SP1语言包微软官方下载地址及使用方法 2
情形一:如果您的系统版本是企业版.旗舰版,可以在Windows update中检测语言包按照提示下载安装即可.如果觉得Windows update不方便的话,可以在本文第二部分中下载所需的语言包,下载 ...