您好,登錄后才能下訂單哦!
【安裝工具】
JDK
Eclipse 或直接下一個(gè) ADT集成開(kāi)發(fā)工具
SDK
NDK9r
ADT
CDT
安裝方法自行百度。
【正文】
1、由 Cocos2D-X 和 VS2010 環(huán)境配置——1 中提到的python方法,創(chuàng)建新項(xiàng)目。
然后將你開(kāi)發(fā)好的win項(xiàng)目相應(yīng)的文件Classes和Resources文件夾里的東西分別拷貝到剛創(chuàng)建的新項(xiàng)目中相應(yīng)的 Classes 和 assets 文件夾中去。
2、使用Eclipse將新項(xiàng)目中的pro.android導(dǎo)入。
3、修改Android.mk
將你Classes里的cpp都包進(jìn)來(lái)。
并且在 include $(BUILD_SHARED_LIBRARY) 下面添加如下兩行:
$(call import-add-path, D:\Android\tools\cocos2d-x-2.2.3)
$(call import-add-path, D:\Android\tools\cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt)
4、修改項(xiàng)目的參數(shù)
5、下面是bash,如果你的ndk版本低于r8,那么就需要再下個(gè)cywin了。
MAC的是這個(gè)(沒(méi)有 .cmd 后綴)。
6、導(dǎo)入一些資源文件
D:\Android\tools\cocos2d-x-2.2.3\CocosDenshion\include
D:\Android\tools\cocos2d-x-2.2.3\cocos2dx\include
7、在C/C++ Build 中的 Environment 里 Add 一個(gè)變量。
NDK_MODULE_PATH
D:\Android\tools\cocos2d-x-2.2.3;D:\Android\tools\cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt
8、然后就可以點(diǎn)擊導(dǎo)航欄中的 , 開(kāi)始編譯了。。。
9、編譯完之后,項(xiàng)目的bin中就多了一個(gè)apk文件。這樣一直就成功了。。。
10、在手機(jī)上跑跑看。。。
【問(wèn)題】
如下有幾個(gè)配置過(guò)程中可能出現(xiàn)的錯(cuò)誤。。。
Q1:Program "bash" not found in PATH
A1:D:\Android\tools\android-ndk-r9d\ndk-build.cmd
如果你的ndk版本低于r8,那么就需要下載cywin,具體過(guò)程自己百度。
Q2:The import org.cocos2dx.lib cannot be resolved
A2: 沒(méi)有引入相應(yīng)的包。
Project Properties -> Java Build Path -> Source -> Link Source -> "D:/Android/tools/cocos2d-x-2.2.3/cocos2dx/platform/android/java/src"
Q3:Symbol 'CocosDenshion' could not be resolved
A3:沒(méi)有引入源文件的原因。
Project Properties -> C/C++ General -> Path and Symbols -> Includes -> GNU C++ -> Add -> "D:\Android\tools\cocos2d-x-2.2.3\CocosDenshion\include"
然后加下面兩句話即可。
#include "SimpleAudioEngine.h"
using namespace CocosDenshion;
Q4:Type 'std::string' could not be resolved
A4:android本身是不支持C++的STL的,所以你需要加入一些C++的STL的庫(kù)函數(shù)
詳情見(jiàn) 錯(cuò)誤5。
然后加上兩句,就可以用了。
#include <string>
using namespace std;
Q5:Invalid arguments ' Candidates are: void * memcpy(void *, const void *, ?)
A5:為何會(huì)有“?”呢。。。
查看原形 extern void* memcpy(void *, const void *, size_t);
錯(cuò)誤提示中:Invalid arguments,意味著參數(shù)無(wú)效,很明顯是size_t這個(gè)參數(shù)不被正常識(shí)別造成的。
源于此分析,那么凡是使用size_t類型參數(shù)的方法均會(huì)出現(xiàn)這個(gè)問(wèn)題,例如:memset,memccpy,memchr,memcmp等。
解決方案:
右擊項(xiàng)目工程properties -> C/C++ General -> Paths and Symbols ->
選擇 "Includes" 標(biāo)簽的 GNU C++。Add下面兩個(gè)路徑:
D:\Android\tools\android-ndk-r9d\platforms\android-19\arch-arm\usr\include
D:\Android\tools\android-ndk-r9d\toolchains\arm-linux-androideabi-4.8\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.8\include
如此,該問(wèn)題可解。
備注說(shuō)明:
還可在將以下兩個(gè)頭文件庫(kù)添加到項(xiàng)目的include中:
里面有一些其他的C++頭文件和STL的頭文件。。。
D:\Android\tools\android-ndk-r9d\sources\cxx-stl\gnu-libstdc++\4.8\include;
D:\Android\tools\android-ndk-r9d\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a\include;
Q6:*** Android NDK: Aborting. . Stop.
A6:修改項(xiàng)目的jni文件夾下的Android.mk。
在 include $(BUILD_SHARED_LIBRARY) 下面添加如下兩個(gè):
$(call import-add-path, D:\Android\tools\cocos2d-x-2.2.3)
$(call import-add-path, D:\Android\tools\cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt)
Q7:The connection to adb is down, and a severe error has occured.
A7:cmd跳到sdk tools文件路徑下;adb kill-server;然后再adb start-server;重啟Eclipse。
Q8:Type 'xxxx' could not be resolved
A8:修改工程的indexer屬性就OK了
Q9:Unable to resolve target 'android-8'
A9:原因是沒(méi)有android-8的SDK,打開(kāi)Android項(xiàng)目中的project.properties,將target改成你電腦中擁有的SDK版本API。如我這里有API 10和API 19。那么將其改成android-10或android-19即可。
Q*、其實(shí)其他的錯(cuò)誤都和上面的錯(cuò)誤很類似,有什么錯(cuò),基本都是沒(méi)有加頭文件引起的。。。
歡迎大家提供其他的錯(cuò)誤。。。。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。