日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

cocos2dx基础篇(2)——Win32移植到Android

發(fā)布時(shí)間:2025/3/8 Android 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocos2dx基础篇(2)——Win32移植到Android 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【安裝工具】

? ?JDK

? ?Eclipse 或直接下一個(gè) ADT集成開發(fā)工具

? ? ? ?SDK

? ? ? ?NDK9r

? ? ? ?ADT

? ? ? ?CDT

? ?安裝方法自行百度。


【正文】

? ?1、由 Cocos2D-X 和 VS2010 環(huán)境配置——1 中提到的python方法,創(chuàng)建新項(xiàng)目。

? ?然后將你開發(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)來。

????????并且在 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è)(沒有 .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)航欄中的 , 開始編譯了。。。


? ?9、編譯完之后,項(xiàng)目的bin中就多了一個(gè)apk文件。這樣一直就成功了。。。


? ?10、在手機(jī)上跑跑看。。。





【問題】

如下有幾個(gè)配置過程中可能出現(xiàn)的錯(cuò)誤。。。


Q1:Program "bash" not found in PATH

A1:D:\Android\tools\android-ndk-r9d\ndk-build.cmd

? ? ? ?如果你的ndk版本低于r8,那么就需要下載cywin,具體過程自己百度。 ? ?


Q2:The import org.cocos2dx.lib cannot be resolved

A2: 沒有引入相應(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:沒有引入源文件的原因。

? ? ? ?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的庫函數(shù)

? ? ? ?詳情見 錯(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ù)無效,很明顯是size_t這個(gè)參數(shù)不被正常識(shí)別造成的。

源于此分析,那么凡是使用size_t類型參數(shù)的方法均會(huì)出現(xiàn)這個(gè)問題,例如: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

? ? ? ?如此,該問題可解。

? ? ? ?備注說明:

? ? ? ? ? ?還可在將以下兩個(gè)頭文件庫添加到項(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:原因是沒有android-8的SDK,打開Android項(xiàng)目中的project.properties,將target改成你電腦中擁有的SDK版本API。如我這里有API 10和API 19。那么將其改成android-10或android-19即可。


Q*、其實(shí)其他的錯(cuò)誤都和上面的錯(cuò)誤很類似,有什么錯(cuò),基本都是沒有加頭文件引起的。。。


歡迎大家提供其他的錯(cuò)誤。。。。







轉(zhuǎn)載于:https://blog.51cto.com/shahdza/1406324

總結(jié)

以上是生活随笔為你收集整理的cocos2dx基础篇(2)——Win32移植到Android的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。