看了那麼多篇文章,自己結合一些前輩的精華寫下這個。(因爲總是不能在一個教程完成打包的全部工作需要。。。。。。)
直接開始
第一步:環境配置
必須的工具
1 Python (我用的是python2.7)
2 JDK (我用的是jdk1.7.0_17)
3 ADT(包括了eclipse和 SDK,用完整包省去一些麻煩)
4 NDK (我用的是android-ndk-r8b)
接着配置環境變量
添加java和python的路徑 (以下路徑都是我個人電腦的路徑,根據情況更改)
Java:C:\Program Files\Java\jdk1.7.0_17\bin
Python:C:\Python27
SDK和NDK
SDK:D:\android\sdk\tools
NDK:這個新建一個變量 變量名如下,變量值看ndk在哪裏就寫哪裏
環境配置已完成
第二步 開始打包
首先打開eclipse
點文件 導入
選擇你項目的文件位置 點完成
接着導入庫 方法跟上面一樣
庫的路徑是:D:\cocos2d-x-2.2.2\cocos2d-x-2.2.2\cocos2dx\platform\android
導入好以後應該是這樣的
接着
點擊窗口(windows) 再點擊 首選項
找到如下位置 點擊新建 然後按照圖片這樣寫(路徑要按照自己的路徑寫)
點擊應用(apply)
再找到如下位置 點擊添加 然後按照圖片那樣寫 (路徑寫自己的)點擊應用(apply)
右鍵 項目名稱
點擊屬性 進入屬性界面
添加ndk-build.cmd的位置 我的是:D:\android\android-ndk-r8b\ndk-build.cmd
點 應用和確定
接着 進入Resource
把裏面的資源拷貝到 assets裏面
然後在eclipse 裏面右鍵項目刷新
雙擊 Android.mk 進去修改
在 include $(BUILD_SHARED_LIBRARY) 下面添加兩行代碼
$(call import-add-path, D:/cocos2d-x-2.2.2/cocos2d-x-2.2.2)\
$(call import-add-path,
D:/cocos2d-x-2.2.2/cocos2d-x-2.2.2/cocos2dx/platform/third_party/android/prebuilt)\
把 LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp
換成
FILE_LIST := hellocpp/main.cpp
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)
LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
最後加一行代碼
NDK_MODULE_PATH:=D:/cocos2d-x-2.2.2/cocos2d-x-2.2.2;D:/cocos2d-x-2.2.2/cocos2d-x-2.2.2/cocos2dx/platform/third_party/android/prebuilt
版本問題
API 我填的是19 因爲我用的是4.4的
橫屏 landscape 豎屏 portrait
差不多就是這樣了 點項目 構建項目就OK了
其他:
如果用到 iconv.h
下載一個libiconv庫
然後解壓到cocos2dx根目錄下
打開Android.mk
添加代碼
LOCAL_WHOLE_STATIC_LIBRARIES += libiconv_static
$(call import-module,libiconv)
如下圖所示
將程序中cocos2dx\platform\third_party\win32目錄下的iconv文件夾拷貝到自己工程的Classes目錄下
(這句話原封不動抄的別人 http://www.cnblogs.com/hewei2012/p/3374147.html)
然後在你使用這個庫的 .h裏面修改
#include "iconv/iconv.h"#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
#pragma comment(lib,"libiconv.lib") #endif
在AppDelegate.cpp
加入
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(640, 960,kResolutionShowAll);
選擇kResolutionExactFit則會拉伸至充滿整個屏幕
選擇kResolutionShowAll則不會拉伸,但是會留上下等寬的黑邊