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 ...
随机推荐
- 【进阶——最小费用最大流】hdu 1533 Going Home (费用流)Pacific Northwest 2004
题意: 给一个n*m的矩阵,其中由k个人和k个房子,给每个人匹配一个不同的房子,要求所有人走过的曼哈顿距离之和最短. 输入: 多组输入数据. 每组输入数据第一行是两个整型n, m,表示矩阵的长和宽. ...
- Java中的OutOfMemoryError的各种情况及解决和JVM内存结构
在JVM中内存一共有3种:Heap(堆内存),Non-Heap(非堆内存) [3]和Native(本地内存). [1] 堆内存是运行时分配所有类实例和数组的一块内存区域.非堆内存包含方法区和JVM内部 ...
- struct 与 typedef struct
1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等). 在编程中使用typede ...
- 经典C语言面试题
1.gets()函数 问:请找出下面代码里的问题: #include<stdio.h> int main(void) { char buff[10]; memset(buff,0,size ...
- Ioc注入方式写dubbo client(非set beans)
@Autowired注解的方式注解 Spring框架中进行注入式,使用@Autowired. @Autowired可以对成员变量.方法和构造函数进行标注,来完成自动装配的工作,这里必须明确:@Auto ...
- python 安装预编译库注意事项-pip
一般安装依赖库用pip install 库名 就可以,某些情况下依赖的库需要安装预编译好的, 可以参考pip 安装时的错误信息 下面这个链接中可以直接下载 http://www.lfd.uci.edu ...
- 谈layout_gravity和gravity的用法
相信对于Android的初学者来说,大家都曾经被layout里这两个极其相似的属性迷惑过. 简单使用一下搜索工具,我们就不难找到下面这样的答案: layout_gravity 表示组件自身在父组件 ...
- flappy pig小游戏源码分析(1)——主程序初探
闲逛github发现一个javascript原生实现的小游戏,源码写的很清晰,适合想提高水平的同学观摩学习.读通源码后,我决定写一系列的博客来分析源码,从整体架构到具体实现细节来帮助一些想提高水平的朋 ...
- Android APP的安装路径
转载自:http://blog.csdn.net/libaineu2004/article/details/25247711 一.安装路径在哪? Android应用安装涉及到如下几个目录: syste ...
- Hadoop2.2.0 自动切换HA环境搭建
自动切换的HA,比手动切换HA集群多了一个zookeeper集群 机器分配: zookeeper:hadoop4,hadoop5,hadoop6 namenode:hadoop4,hadoop5 da ...