ubuntu下安装cocos2d
折腾了半天,源代码有bug,自己修改了一下才可以用 环境ubuntu12.10 cocos2d-x最新版本 1. git clonehttps://github.com/cocos2d/cocos2d-x.git下载cocos2d-x源代码 2. 官方下载ndk,我的是64位版本android-ndk-r8e 3. 官方下载sdk,我的eclipse之前已经下载过
折腾了半天,源代码有bug,自己修改了一下才可以用
环境ubuntu12.10 + cocos2d-x最新版本
1. git clone https://github.com/cocos2d/cocos2d-x.git下载cocos2d-x源代码
2. 官方下载ndk,我的是64位版本android-ndk-r8e
3. 官方下载sdk,我的eclipse之前已经下载过了,直接拿来用android-sdks
4. 进入cocos2d-x,开始编译,不过g++版本要修改为4.6或以上
5. 打开./make-all-linux-project.sh, 修改NDK和SDK的路径,运行 ./make-all-linux-project.sh,等待几分钟即可编译完成
6. 运行./create-android-project.sh来根据提示创建一个工程
问题就出现在第六步,总是提示:
cp: 无法获取"/home/lsc/disk/cocos2d-x/cocos2d-x/samples/Cpp/HelloCpp/proj.android/{jni,src}" 的文件状态(stat): 没有那个文件或目录
/home/lsc/disk/cocos2d-x/cocos2d-x/template/android/gamemk.sh: 32: /home/lsc/disk/cocos2d-x/cocos2d-x/template/android/gamemk.sh: cannot create /home/lsc/disk/cocos2d-x/cocos2d-x/Hello/proj.android/jni/Android.mk: Directory nonexistent
sed: 无法读取 /home/lsc/disk/cocos2d-x/cocos2d-x/Hello/proj.android/src/org/cocos2dx/hellocpp/HelloCpp.java: 没有那个文件或目录
发现在template/android/copy_files.sh中出错在这一行
cp -rf $HELLOWORLD_ROOT/proj.android/{jni,src} $APP_DIR/proj.android
没办法,把他们分开写成两行去:
cp -rf $HELLOWORLD_ROOT/proj.android/jni $APP_DIR/proj.android
cp -rf $HELLOWORLD_ROOT/proj.android/src $APP_DIR/proj.android
保存再编译,问题解决了
7. 接着进入刚才创建好的工程目录下,我的名字叫firstdemo,该工程下有proj.android目录,进入运行脚本./build_native.sh,这样过了两分钟,编译C++生成libgame.so库
8.我们好要编译android apk,所以打开eclipse,导入该工程,这时候由于没有加入jar包,所以会提示有些java类找不到
9.jar包路径在cocos2d-x/cocos2dx/platform/android/java/bin/libcocos2dx.jar,我刚开始的时候是按照网上的方法导入jar包的,就是右键项目->build path ->configrue build path-> add external JARs, 这样是没有语法错误了,编译也成功了, 可是运行apk的时候总是提示如下log:
W/dalvikvm( 4677): Unable to resolve superclass of Lcom/android/cocos2dx/demo/firstdemo; (21)
W/dalvikvm( 4677): Link of class 'Lcom/android/cocos2dx/demo/firstdemo;' failed
D/AndroidRuntime( 4677): Shutting down VM
W/dalvikvm( 4677): threadid=1: thread exiting with uncaught exception (group=0x40aa5930)
I/SurfaceFlinger( 1076): GraphicBufferAlloc::createGraphicBuffer
E/AndroidRuntime( 4677): FATAL EXCEPTION: main
E/AndroidRuntime( 4677): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.android.cocos2dx.demo/com.android.cocos2dx.demo.firstdemo}: java.lang.ClassNotFoundException: Didn't find class "com.android.cocos2dx.demo.firstdemo" on path:
/data/app/com.android.cocos2dx.demo-2.apk
E/AndroidRuntime( 4677): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
E/AndroidRuntime( 4677): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
E/AndroidRuntime( 4677): at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/AndroidRuntime( 4677): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
E/AndroidRuntime( 4677): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 4677): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 4677): at android.app.ActivityThread.main(ActivityThread.java:5041)
E/AndroidRuntime( 4677): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 4677): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 4677): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime( 4677): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime( 4677): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 4677): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.cocos2dx.demo.firstdemo" on path: /data/app/com.android.cocos2dx.demo-2.apk
E/AndroidRuntime( 4677): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
刚开始以为AndroidMainfest.xml的 android:name有问题,可是怎么修改都不行,仔细看了log才发现Unable to resolve superclass of这一句,很明显是找不到jar包的类了
果断怀疑是jar包导入的问题,接着把刚导入的jar包删除,直接复制libcocos2dx.jar文件,在eclipse窗口中右击libs文件夹,直接选择粘帖,再运行,问题解决,可以看到
画面了,网上也找到一个据说是正确导入jar包的方法,原文如下:
在网上查了一下,有人说上面的做法有可能会出错,建议采用下面的步骤:
右键工程,
Build path,
java build path,选择libraries
在右边的按钮中点击“Add Library”
选择“User library”,点击“下一步”
点击“User librarys”按钮
在出现的界面中点击“New..”按钮
在弹出的界面中随便起一个名字,点击“确定”
点击“Add jars”按钮选择第三方jar包,点击“确定”完成操作。
这样的话该jar包会被一起打包到apk中,问题也就解决了!
接着我发现这样子每次都要先在shell中编译C++部分,然后在eclipse中编译android部分,很麻烦,网上找了一下,有没有解决,找到了一篇比较详细的说明,直接拿来用,发现没问题,原文如下:
http://www.ityran.com/archives/1062
通过命令脚本来编译c++代码,完了之后用eclipse来编译java代码,这种来回切换的做法非常笨重。如果全部可以用eclipse来完成的话,那么生活会更简单一些。
幸运的是,我们可以告诉eclipse,我们的android项目是一个集成java/c++的跨语言项目!
为此,我们在左边的项目树上选择samplecocos2dxandroid,然后从菜单里面选择File\New\Other,然后从对话框里面选择C/C++\Convert to a C/C++ Project,如下所示:
点击Next。在下一个屏幕里面,选中你的项目,然后选择c++单选按钮,然后为Project type指定Makefile project\Other Toolchain,如下所示:
点击完成。这时eclipse会询问你是否打开C/C++视图,当对话框出现的时候,选择NO。
接下来的步骤就是修改项目设置,指定如何运行我们的make命令。在左边的项目树上,右击samplecocos2dxandroid工程,选择Properties,然后选择C/C++ build
取消“Use default build command”复选框,然后在build文本框中输入下面的命令:
<ol><li value="1">bash ${workspace_loc:/samplecocos2dxandroid}/build_native.sh NDK_DEBUG=1 V=1</li></ol>
点击Apply,然后点OK。
回到eclipse,从主菜单中选择Project\Build All,这时你可以在eclipse的控制台输出中看到c++ make在运行。
我们仍然有一些警告需要解决。想知道我是什么意思吗,你打开jni/helloworld/main.cpp,这里你会看到一系列的警告,如下所示:
这些警告之所以会出现,是因为我们没有配置正确的c++包含路径。为了解决它,我们右击samplecocos2dxandroid工程,然后选择Properties\C/C++ General\Path and Symbols\GNU C++。
选择Add…按钮来选择下面的目录,之后点击Apply和OK。
<ol><li value="1">$(NDKROOT)/platforms/android-9/arch-arm/usr/include $(COCOS2DX_HOME)/cocos2dx/include</li></ol>
注意: 不用忘了使用实际的路径来替换掉$(NDKROOT)和$(COCOS2DX_HOME)。
点击Apply,这时会提示你是否重建索引。直接点击yes继续就可以了。
现在,你再看看main.cpp,你会看到大部分警告已经消失了。
但是,AppDelegate.h文件还是找不到。这是因为AppDelegate.h是在$PROJECT_HOME\Classes文件夹下面。这个文件夹对我们来说非常重要,因为它包含了我们工程里面的可移植的c++类,比如HelloWorldScene.cpp等。
当我们创建eclipse项目的时候,我们必须选择$PROJECT_HOME\android文件夹,因为eclipse需要一个AndroidManifest.xml文件。但是,这样的话,我们的工程就不包括关键的“Classes”文件夹了,这也是为什么我们会得到这么多警告的原因。
让我们来修正它吧。右击samplecocos2dxandroid项目,选择Properties\C/C++ General\Paths and Symbols\Source location。点击Link Folder,然后复选中Link to a folder in the file system,接着浏览到$PROJECT_HOME文件夹,并指向Classes目录,最后点Apply和OK。
你现在可以在文件树里面看到Classes目录了,而且在main.cpp里面的#include “AppDelegate.h”警告也应该消失了。
Eclipse工程里面还会有许多警告,但是,这是因为eclipse对于解析c++头文件的能力并不强大。为了消除这些警告,我们又需要设置一下项目设置。(右键点工程,然后选择Properties),把Code Analysis部分的warnings关闭,如下图所示:
然后点击Apply和OK,这时,你就得到一个工程可以在eclipse里面进行编辑了。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Win11系統無法安裝中文語言包的解決方法隨著Windows11系統的推出,許多用戶開始升級他們的作業系統以體驗新的功能和介面。然而,一些用戶在升級後發現他們無法安裝中文語言包,這給他們的使用體驗帶來了困擾。在本文中,我們將探討Win11系統無法安裝中文語言套件的原因,並提供一些解決方法,幫助使用者解決這個問題。原因分析首先,讓我們來分析一下Win11系統無法

您可能無法在OracleVirtualBox中將來賓新增安裝到虛擬機器。當我們點擊Devices>;InstallGuestAdditionsCDImage時,它只會拋出一個錯誤,如下所示:VirtualBox-錯誤:無法插入虛擬光碟C:將FilesOracleVirtualBoxVBoxGuestAdditions.iso編程到ubuntu機器中在這篇文章中,我們將了解當您無法在VirtualBox中安裝來賓新增元件時該怎麼辦。無法在VirtualBox中安裝來賓添加如果您無法在Virtua

在Ubuntu系統中,root使用者通常是停用狀態的。要啟動root用戶,可以使用passwd指令設定密碼,然後使用su-指令以root身分登入。根用戶是具有系統管理權限且不受限制的使用者。他擁有存取和修改檔案、使用者管理、軟體安裝和刪除,以及系統配置變更等權限。根用戶與一般用戶有著明顯的區別,根用戶擁有系統中最高的權限和更廣泛的控制權。根用戶可以執行重要的系統命令和編輯系統文件,而普通用戶則無法做到這一點。在本指南中,我將探討Ubuntu根用戶,如何以根用戶身份登錄,以及它與一般用戶的不同之處。注意

如果你已經成功下載了百度網盤的安裝文件,但是無法正常安裝,可能是軟體文件的完整性發生了錯誤或者是殘留文件和註冊表項的問題,下面就讓本站來為用戶們來仔細的介紹一下百度網盤下載成功但是安裝不了問題解析吧。 百度網盤下載成功但是安裝不了問題解析 1、檢查安裝檔完整性:確保下載的安裝檔完整且沒有損壞。你可以重新下載一次,或者嘗試使用其他可信任的來源下載安裝檔。 2、關閉防毒軟體和防火牆:某些防毒軟體或防火牆程式可能會阻止安裝程式的正常運作。嘗試將防毒軟體和防火牆停用或退出,然後重新執行安裝

在Linux下更新curl版本,您可以按照以下步驟進行操作:檢查目前curl版本:首先,您需要確定目前系統中安裝的curl版本。開啟終端,並執行以下指令:curl--version該指令將顯示目前curl的版本資訊。確認可用的curl版本:在更新curl之前,您需要確定可用的最新版本。您可以造訪curl的官方網站(curl.haxx.se)或相關的軟體來源,尋找最新版本的curl。下載curl原始碼:使用curl或瀏覽器,下載您選擇的curl版本的原始碼檔案(通常為.tar.gz或.tar.bz2

在Linux上安裝安卓應用程式一直是許多用戶所關心的問題,尤其是對於喜歡使用安卓應用程式的Linux用戶來說,掌握如何在Linux系統上安裝安卓應用程式是非常重要的。雖然在Linux系統上直接運行安卓應用程式並不像在Android平台上那麼簡單,但是透過使用模擬器或第三方工具,我們依然可以在Linux上愉快地享受安卓應用程式的樂趣。以下將為大家介紹在Linux系統上安裝安卓應

Angular.js是一種可自由存取的JavaScript平台,用於建立動態應用程式。它允許您透過擴展HTML的語法作為模板語言,以快速、清晰地表示應用程式的各個方面。 Angular.js提供了一系列工具,可協助您編寫、更新和測試程式碼。此外,它還提供了許多功能,如路由和表單管理。本指南將討論在Ubuntu24上安裝Angular的方法。首先,您需要安裝Node.js。 Node.js是一個基於ChromeV8引擎的JavaScript運行環境,可讓您在伺服器端執行JavaScript程式碼。要在Ub

對於許多用戶來說,破解 Android 電視盒聽起來令人畏懼。然而,在 Broadcom 晶片短缺期間,開發人員 Murray R. Van Luyn 面臨著尋找 Raspberry Pi 合適替代品的挑戰。他與 Armbia 的合作努力
