cocosandroid编译
① android环境下cocos2dx-3.13.1,新建项目后proj.android下没有build_native.py脚本文件,如何编译项目
好像最近几个版本不能使用build_native.py来build c++内容了,你这个项目都没这个文件应该是完全取消了这个项目的生成方式。不如你试试命令行:
cocos compile -p android
如果不行,最好看一下官方怎么说的。
② cocos2dx3.2编译android的.so报错
NDK_MODULE_PATH没定义
③ cocos3.13引擎对curl作了什么修改,编译不上安卓了
那就不要想了,肯定是cocos2dx,因为cocos2d只能开发ios游戏,还不能被移植到android,因为cocos2d使用的是OC语言的缘故,cocos2d-x就不一样了,它是用c++写的
④ 用cocos Creator发布到android平台报错,这是什么原因
原生打包环境的注意事项:
1. 检查路径
在偏好设置中设置好的路径必须确保是正确的,比如:ant 路径需要设置到 ant 安装目录内的 bin 目录下,NDK 是其根目录,而 Android SDK 的目录下应该包含 build-tools、platforms 等文件夹。
2. 检查 Xcode 和 Visual Studio
打包 Mac 版本和 iOS 版本需要 Xcode 支持。打包 Windows 版本需要安装 Visual Studio,同时在安装 Visual Studio 时,默认并没有勾选 C++ 编译组件。如果没有安装,则需要重新安装并选择 C++ 相关编译组件。
3. 检查 NDK 版本
不论使用什么版本的引擎,都需要使用 NDK r9b 以上版本。如果使用了 Cocos2d-x framework, 请使用 NDK r10 以上的版本,推荐 r10e。
4. Windows 平台需要检查 java_HOME 环境变量
如果使用 Windows 平台,请确认你的环境变量中包含 JAVA_HOME,可以通过右键点击我的电脑,选择属性,打开高级选项卡中来查看和修改环境变量。Windows 平台可能需要重启电脑才会生效。
参考[如何设置或更改 JAVA 系统环境变量?](https://www.java.com/zh_CN/download/help/path.xml)
5. 检查 JAVA 环境
在 Mac 终端或者 Windows 命令行工具中输入下面代码来查看:
```
java -version
```
如果显示为 JAVA SE 则没有问题,如果系统中使用的是 JRE,则需要安装 [JAVA SE 运行环境]
6. 包名问题
检查构建发布面板中的包名,包含空格,`-`等都是非法的包名。
⑤ cocos编译无法找到pdb文件,怎么办
你怎么编译的, cocos2dx的android.mk不能直接编译, 要编译主工程时包含编译. 可以参考tests\proj.android\build_native.sh文件, 把里面的几个环境变量还成你自己的路径再运行即可. 你的主工程的jni目录下的android.mk和application.mk也要参考tests\proj.android\jni里面的对应文件, 主要就是加入cocos2d-x几个工程的依赖.
⑥ 如何利用 mac android studio 编译 cocos
赘述。
Eclipse + ADT plugin + Android SDK 下载地址:http://developer.android.com/sdk/index.html#ExistingIDE
Android NDK 下载地址:http://developer.android.com/tools/sdk/ndk/index.html
Apache ANT的下载及配置请参阅:http://blog.csdn.net/song_hui_xiang/article/details/14315529
CDT 致力于为Eclipse平台提供功能完全的C/C++集成开发环境 下载地址:http://www.eclipse.org/cdt/
检查本地mac是否已有JDK以及ANT
打开终端输入Java -version与ant -version命令,如果如图1显示,则证明已有:
⑦ cocos编译android项目出错显示文件名、目录名或卷标语法不正确怎么解决
文件名、目录名或卷标语法不准确,可能是由于文件名太长或包含了这些字符“/”、“\”,“:”、“*”、“?”、“<”、“>”、“””、“|”造成的。
文件是存储在一定媒体上的一组相关信息的集合,和我们平时写在纸上的文件不是一个概念。电脑中的文件,可以是各种程序、数据、文本、图形和声像资料等。文件可以是应用程序,也可以是应用程序创建的数据文件,如Word
2010创建的Word文档,画图程序创建的位图文件等。某一部分紧密相关的存储群体,就叫做一个文件。
每个人都要有名有姓,文件也一样,无论文件大小,每个文件都必须给它一个命名,以便能在相应的磁盘中找到它,这个名字叫做文件名。Windows7规定,文件名可以有255个字符,但不能包含下列字符:“/”、“\”,“:”、“*”、“?”、“<”、“>”、“””、“|”。
为了更好地区分不同种类的文件,就像人的名字分为姓和名一样,文件名也分为两部分,中间用一个圆点隔开,圆点后面的就是文件的“姓”,叫做扩展名。
同一类型文件的扩展名相同,不同类型文件的扩展名不同,如Word 2010文件的扩展名一般是DOCX,而Excel 2010文件的扩展名一般是XLSX。电脑可以通过文件名,很方便快捷地对文件进行查找或存取操作。
⑧ cocos打包安卓客户端时,creator2.4.3无法编译安卓客户端
打开安装客户端时,无法编译,无法编译客户端,那是不可能的,你在设置里边感觉的试一下
⑨ android studio怎么用cocos creater
新建一个CocosCreator项目,然后点击构建
构建完成之后,即可用AndroidStudio打开构建的项目
使用AndroidStudio打开刚才构建的项目
打开之后Androidstudio可能会让你更新项目中的Gradle,可以先选择稍后提醒,如果之后的编译、运行不通过,再重新打开该项目,然后选择更新Gradle,或者手动修改项目中的Gradle版本
打开之后在Terminal窗口输入
cocos compile -p android --no-apk --android-studio,然后回车
此操作的目的是编译C++工程,之所以编译C++工程,是因为CC引擎核心代码是用C++写的,需要先编译成SO,然后Activity才能调用。
以后每次在CC中修改场景或代码都要先进行保存->构建,然后在AndroidStudio中Terminal窗口编译C++,然后运行生产的APP才会成功。
注:C++首次编译需要较长时间,耐心等待,编译成功后会提示编译成功
新建一个类写自己要实现的功能(以拍照功能为例)
注:类中的方法要使用静态的,只有静态方法,才能在CC中通过Javascript调用
写完功能回到CC,在使用处调用该方法
修改完保存代码,然后点击【构建】重新构建,构建完成之后回到AndroidStudio重新在Terminal窗口编译C++,然后运行、调试APP
运行调试APP
注:在AndroidStudio中编译APP和在CC中编译APP结果大致是一样的,所以在任何一处编译都能生成APP
AS和CC编译生成App的位置:示例:
AS运行:
E:\CocosCreator\workspaces\photo\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\build\outputs\apk
AS调试:
E:\CocosCreator\workspaces\photo\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\build\outputs\apk
CC编译:
E:\CocosCreator\workspaces\photo\build\jsb-default\frameworks\runtime-src\proj.android-studio\app\build\outputs\apk
CC编译:
E:\CocosCreator\workspaces\photo\build\jsb-default\simulator\android
CC运行:
E:\CocosCreator\workspaces\photo\build\jsb-default\frameworks\runtime-src\proj.android\bin
GoodLuck
⑩ cocos jni编译出错
1. fatal error: CCMenuItem.h: No such file or directory
这是因为工程中AppDelagete.cpp包含了这个头文件,但是在头文件搜寻路径中没有找到该文件。
在vs或其他ide上一般只要设置工程属性就行了。比如vs2012:
工程属性面板->配置属性->C/C++->附加包含目录,加上cocos2d-x/cocos/2d就行了。
设置了ide的工程属性后,对于命令行编译打包到android平台apk仍然会提示这个问题。这时候就需要在Android.mk里面设置,让编译程序能够找到对应的头文件。比如这种情况就可以这样设置:
在Andoroid.mk (proj.android\jni\下面)里面把头文件加入LOCAL_C_INCLUDES,比如将
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
改成
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../cocos2d/cocos/2d \
$(LOCAL_PATH)/../../Classes
这里我原以为是要在Android.mk里面加入一行$(call import-mole,2d)。结果这样做导致提示2d这个模块找不到,进而错误地认为是ndk路径设置不对:
Android NDK: F:\Tech\Projects\Cocos2d-x\Earlybird\Earlybird-3.1\proj.android\../
cocos2d/cocos/audio/android/Android.mk: Cannot find mole with tag '2d' in impo
rt path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
Android NDK: The following directories were searched:
Android NDK:
make.exe: Entering directory `F:/Tech/Projects/Cocos2d-x/Earlybird/Earlybird-3.1
/proj.android'
jni/Android.mk:35: *** Android NDK: Aborting. . Stop.
后来才发现应该是LOCAL_C_INCLUDES里面添加。
2. 如下错误信息:
[armeabi] SharedLibrary : libcocos2dcpp.so
jni/../../Classes/LoadingScene.h:30: error: undefined reference to 'LoadingScene
::LoadingScene()'
jni/../../Classes/HelloWorldScene.cpp:53: error: undefined reference to 'AtlasLo
ader::getInstance()'
很明显,这里没有找到对应的LoadingScene.cpp和AtlasLoader.cpp文件。这两个文件都在../../Classes文件夹里面。但是在Android.mk里面../../Classes只是头文件的搜索路径,没有放到编译的文件里面。所以这里在链接的时候找不到对应的源文件。应该在LOCAL_SRC_FILES里面加入,将
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
改成
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp \
../../Classes/AtlasLoader.cpp \
../../Classes/BackgroundLayer.cpp \
../../Classes/BirdSprite.cpp \
../../Classes/GameLayer.cpp \
../../Classes/GameScene.cpp \
../../Classes/LoadingScene.cpp \
../../Classes/MenuScene.cpp \
../../Classes/Number.cpp \
../../Classes/OptionLayer.cpp \
../../Classes/StatusLayer.cpp \
../../Classes/WelcomeLayer.cpp \
../../Classes/WelcomeScene.cpp \
../../Classes/UserRecord.cpp \