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。

  1. @echo off
  2. set /p projectName=请输入项目名称(比如:test):
  3. if "%projectName%"=="" goto inputError
  4. set /p packageName=请输入项目包名(比如:org.cocos2dx.test):
  5. if "%packageName%"=="" goto inputError
  6. set /p projectLanguage=请输入编程语言(比如:选填cpp ,lua ,javascript):
  7. if "%projectLanguage%"=="" goto inputError
  8. python create_project.py -project %projectName% -package %packageName% -language %projectLanguage%
  9. pause
  10.  
  11. :inputError
  12. @echo 项目名称或者包标示名不能为空!
  13. 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. WPF为提示信息文本增加闪烁效果

    程序通常需要显示某些提醒用户警示的信息,如:收件箱(40)其中数量闪烁就会起到警示效果.可以适用如下Storyboard实现: <ItemsControl.ItemTemplate> &l ...

  2. 自定义控件如何给特殊类型的属性添加默认值 z

    定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚 标题有点那啥,但确实能表达我掌握此法后的心情. 写自定义控件时往往会有一个需求,就是给属性指定一个默认值(就是可以在VS中右键该 ...

  3. 用Delphi实现文件关联

      文件关联为我们带来很多的方便.Delphi自带有注册表对象TRegistry,可以通过它取得或改变注册表相关键值的内容. Function GetAssociatedExec(FileExt: S ...

  4. elasticsearch-head 的搭建

    elasticsearch-head 全部是js和html5写的,elasticsearch 全部都是http的接口, 这样,只需要简单地本地配置一个虚拟站点,就可以搭建  elasticsearch ...

  5. LR 解决中文乱码(来源——百度)

    因为我们使用的中文操作系统默认的中文编码格式是GB2312,所以LR对服务器的返回内容自动使用GB2312方式阅读的,但是几乎所有的中文网站现在都在使用UTF-8的方式来编码,由于解码编码的方式不同最 ...

  6. Initializing a Build Environment

    This section describes how to set up your local work environment to build the Android source files. ...

  7. cocos2dx 水波纹Shader

    // on "init" you need to initialize your instance bool HelloWorld::init() { ////////////// ...

  8. 【LeetCode】169 - Majority Element

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  9. 浅谈w3c标准

    #浅谈w3c标准 ##w3c标准是什么 w3c标准包括多个方面,官方是从应用角度分的,相关的文档可以戳[这里](http://www.w3.org/standards/).如果从WEB技术角度,可以分 ...

  10. JS获得月最后一天和js得到一个月最大天数

    <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页</title ...