cocos編譯android
⑴ 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 \
⑵ 如何通過cocos creator發布原生android應用
先安裝VS環境。下載cocos2d-x,編譯,安裝模版。利用cocos2d-x引擎編寫游戲。利用cygWin打包為so鏈接庫。導入eclipse,編譯為apk。
⑶ 用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 平台可能需要重啟電腦才會生效。
5. 檢查 JAVA 環境
在 Mac 終端或者 Windows 命令行工具中輸入下面代碼來查看:
```
java -version
```
如果顯示為 JAVA SE 則沒有問題,如果系統中使用的是 JRE,則需要安裝 [JAVA SE 運行環境]
6. 包名問題
檢查構建發布面板中的包名,包含空格,`-`等都是非法的包名。
⑷ 如何利用 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顯示,則證明已有:
⑸ 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
⑹ android環境下cocos2dx-3.13.1,新建項目後proj.android下沒有build_native.py腳本文件,如何編譯項目
好像最近幾個版本不能使用build_native.py來build c++內容了,你這個項目都沒這個文件應該是完全取消了這個項目的生成方式。不如你試試命令行:
cocos compile -p android
如果不行,最好看一下官方怎麼說的。
⑺ cocos編譯android項目出錯顯示文件名、目錄名或卷標語法不正確怎麼解決
文件名、目錄名或卷標語法不準確,可能是由於文件名太長或包含了這些字元「/」、「\」,「:」、「*」、「?」、「<」、「>」、「」」、「|」造成的。
文件是存儲在一定媒體上的一組相關信息的集合,和我們平時寫在紙上的文件不是一個概念。電腦中的文件,可以是各種程序、數據、文本、圖形和聲像資料等。文件可以是應用程序,也可以是應用程序創建的數據文件,如Word
2010創建的Word文檔,畫圖程序創建的點陣圖文件等。某一部分緊密相關的存儲群體,就叫做一個文件。
每個人都要有名有姓,文件也一樣,無論文件大小,每個文件都必須給它一個命名,以便能在相應的磁碟中找到它,這個名字叫做文件名。Windows7規定,文件名可以有255個字元,但不能包含下列字元:「/」、「\」,「:」、「*」、「?」、「<」、「>」、「」」、「|」。
為了更好地區分不同種類的文件,就像人的名字分為姓和名一樣,文件名也分為兩部分,中間用一個圓點隔開,圓點後面的就是文件的「姓」,叫做擴展名。
同一類型文件的擴展名相同,不同類型文件的擴展名不同,如Word 2010文件的擴展名一般是DOCX,而Excel 2010文件的擴展名一般是XLSX。電腦可以通過文件名,很方便快捷地對文件進行查找或存取操作。
⑻ cocos2dx android 打包不成功,求幫助
step 1. vs2012下好,安好。有人說vs2013cocos2d-x有一些問題也不知道真的假的,反正我原本就用的是vs2012。 2 step 2. ADT Bundle 下載下來記住放在哪裡 step 3. JDK 既然要想搞android JDK怎麼可以沒安 ,不解釋怎麼安這個東東,僅僅注意添加環境變數。 step 4. 安裝CDT插件,這是個Eclipse的插件,用來支持Eclipse中C/C++語言的開發。從Eclipse的官網下載,下載之後,將文件夾裡面的內容復制到Ecplise安裝目錄下對應的文件夾之後就可以了。 step 5. 安裝NDK ,這是進行C/C++與Java混合編譯的必要工具。記下下載之後解壓到的目錄,因為到之後的安裝中會用到,我把它的目錄添加到Path里了個人習慣。 step 6. 安裝ANT,Cocos的Android開發需要用到它,所以下載下來安裝好吧。 step 7. 安裝python 2.7 cocos2d-x裡面經常使用python做一些配置環境,創建什麼什麼的。注意不要3.x以上的類似print 2.x和 3.x就不一樣cocos的python是2.x所以我們就下2.x 記得添加環境變數。 step 8. 解壓縮cocos2d-x-3.2alpha0,不容易啊第8步才到這,安裝目錄里有個setup.py 運行它 或者進入cmd 到文件目錄下 python setup.py step 9. 創建項目 在cmd下鍵入 cocos new 文件名 -p 包名(xx.xx.xx注意是三層) -l 所用語言(cpp) -d 路徑(E:\cocos2dx) step 10. 運行項目 找到創建好的目錄下的proj.win32裡面的xx.sln文件,雙擊運行(裝好了vs2012的前提下),少年想怎麼搞就怎麼搞吧。 step 11. 搭 建android,把安裝目錄下的cocos2d-x-3.2alpha0\cocos2d-x-3.2alpha0\cocos\platform \android\java\src 復制到你項目目錄的proj.android下合並src,proj.android\jni文件夾下有個Android.mk用記事本打開找到 LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp\在這里把你自己要用的cpp加進去,然後運行build_native.py。 step 12. 運 行ADT Bundle下的eclipse,打開eclipse後點擊file->Import選擇android下的那個,然後下一步。再點擊Browse 選擇你項目裡面的proj.android文件夾然後導入,等待片刻,導入完成後在eclipse中右擊導入的項目選擇run as->android application。之後會在bin目錄下生成apk,如果你沒有安裝android虛擬機最後會提示你安裝配置一個虛擬機,可以選no,其實這時已 經生成一個apk在你項目的bin文件夾下,用自己的手機搞起吧。
⑼ cocos3.13引擎對curl作了什麼修改,編譯不上安卓了
那就不要想了,肯定是cocos2dx,因為cocos2d只能開發ios游戲,還不能被移植到android,因為cocos2d使用的是OC語言的緣故,cocos2d-x就不一樣了,它是用c++寫的
⑽ cocos打包安卓客戶端時,creator2.4.3無法編譯安卓客戶端
打開安裝客戶端時,無法編譯,無法編譯客戶端,那是不可能的,你在設置里邊感覺的試一下