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的更多相关文章

  1. 【ReactNative】Mac下分分钟打包 Android apk

    时间:2016-11-20 09:17:07 地址:https://github.com/zhongxia245/blog/issues/52 Mac 下 ReactNative如何打包构建Andro ...

  2. Flutter 打包Android APK 笔记与事项

    获取一个KEY 首先要获取 你的 打包应用的一个 key ,这一步其实和 在AndroidStudio 上打包 APK 一样,都是要注册一个本地的 key,key 其实也就是 jks文件啦. 如果已经 ...

  3. weex打包android apk采坑之旅(windows)

    1. npm install weex-toolkit -g 后weex命令不起作用 ,解决办法把weex.cmd所在的目录添加到环境变量PATH 2.weex命令每次报找不到文件'C:\Progra ...

  4. HBuilder打包Android apk 支付不了问题解决

    第一步: 安卓生成自有证书:到JRE的bin目录下,运行keytool命令:cd C:\Program Files\Java\jre1.8.0_91\binkeytool -genkey -alias ...

  5. cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程)

    链接地址:http://www.cocoachina.com/bbs/read.php?tid=333937 cocos2d-x3.9利用cocos引擎一键打包Android平台APK(C++小白教程 ...

  6. Cocos2d-x 3.2 学习笔记(四)学习打包Android平台APK!

    从cocos2dx 3.2项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷! (涉及到3.1.1版本的,请自动对应3.2版本,3.x版本的环境搭建都是一样的) ...

  7. Android 手机卫士--打包生成apk维护到服务器

    项目打包生成apk过程: 1.生成签名文件,并且指定所在位置 2.使用生成的签名文件,给工程打包生成一个apk 本文地址:http://www.cnblogs.com/wuyudong/p/59033 ...

  8. [Android Pro] Android打包一个Apk后,如何查看它的VersionCode、VersionName 等等。

    Android打包成Apk后,其实是一个压缩文件,我们用winrar打开也能看到里面的文件结构.还能看到AndroidManifest.但是里面的内容有点问题. 不知道是因为加密还是Android就是 ...

  9. eclipse 和 android studio 打包签名apk问题

    首先,我使用eclipse打包了一个签名apk 然后,我使用同一个签名文件在android studio 打包同一个项目 接下来,首先安装eclipse 打包的apk,然后安装android stud ...

随机推荐

  1. synchronized作用范围及用法

    1.多线程的同步: 1.1.同步机制: 在多线程中,可能有多个线程试图访问一个有限的资源,必须预防这种情况的发生.所以引入了同步机制:在线程使用一个资源时为其加锁,这样其他的线程便不能访问那个资源了, ...

  2. C++ STL疑惑知识点

    1.remove的问题 用法参考:http://www.cnblogs.com/heyonggang/p/3263568.html

  3. Excel导出问题(导出时不去掉前面的0)(转)

    最简单的方法是:在数字前面加'符号.即代码里添加: "'" 以下均是网上搜集到的其他解答: 一.代码如下: style="mso-number-format:'/@';& ...

  4. Dapper的完整扩展(转)

    真心想说:其实...我不想用Dapper,如果OrmLite.Net支持参数化的话,也就没Dapper的什么事情了,对于OrmLite.Net只能做后续跟踪...... 这个其实是看了Dapper作者 ...

  5. 独立开发游戏越来越容易:Unity 发布旗下的最新游戏引擎 Unity 5,依然有免费版(转)

    独立开发者开发游戏正变得越来越容易,因为在游戏设计中很多吃力不讨好的工作可以直接采用像 Epic Games 或 Unity Technologies 这样的游戏引擎来解决.而这几天,游戏引擎商们先后 ...

  6. B-Tree、B+Tree和B*Tree

    B-Tree(这儿可不是减号,就是常规意义的BTree) 是一种多路搜索树: 1.定义任意非叶子结点最多只有M个儿子:且M>2: 2.根结点的儿子数为[2, M]: 3.除根结点以外的非叶子结点 ...

  7. 免费CDN

    什么是CDN? CDN (Content Delivery Network) ,CDN 是包含可分享代码库的服务器网络. CDN公共库是指将常用的JS库存放在CDN节点,以方便广大开发者直接调用.与将 ...

  8. Eclipse或Myeclipse常用快捷键组合详解

    Eclipse 是一个开放源代码的.基于Java的可扩展开发平台,就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.. Eclipse(Myeclipse)中有很多便于开发的快捷键 ...

  9. 根据headerView位置改变headerView颜色(collectionView/tableview)

    滑动时,tableview中的headerView 的frame不断改变,collectionView的headerView的center不断改变.sotableview: -(void)setFra ...

  10. ASP.NET MVC - 发布网站

    原文地址:http://www.w3school.com.cn/aspnet/mvc_publish.asp 学习如何在不使用 Visual Web Developer 的情况下发布 MVC 应用程序 ...