Chạy Irrlicht trên Android !
Lâu lắm rồi mới bắt tay làm lạiHiện nay google đã ra bộ Android Studio và bỏ hỗ trợ Eclipse
Với Android Studio mình cũng mày mò được chút ít, nhưng cái đó là phần khác.
Còn bày này mình sẽ trình bày cách chạy Irrlicht trên Anroid dùng cách củ (đó là NDK, ANT và ABD...)
Để thực hiện bày này bạn cần cài đặt :
- Android SDK (from http://developer.android.com)
- Android NDK (from http://developer.android.com)
- ant (a build tool commonly used for Java)
- A Java jdk (for example openjdk-6-jdk)
- GNU Make 3.81 or later
- Trên Windows bạn cần có Cygwin (tối thiểu version 1.7)
Còn phien bản Irrlicht dùng Android bạn vào tải tại - nhấn nút download Snapshot:
http://sourceforge.net/p/irrlicht/code/HEAD/tree/branches/ogl-es/
Giải nén nó
Mở ví dụ 27 thực hiện theo hướng dẫn.
Nhưng chắc chắc bạn sẽ gắp khó khăn này ???
- Khi biên dịch Irrlicht bằng NDK-Build thì OK
- Còn khi biên dịch ví dụ 27 bằng NDK-Build thì sẽ có lổi không biên dịch được, Do tệp tin Android.MK mà ra hết.
-Mình đã fixed lổi tệp tin này lại như sau :
(nội dung Android.MK)
LOCAL_PATH := $(call my-dir)\\..
IRRLICHT_PROJECT_PATH := $(LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE := Irrlicht
LOCAL_SRC_FILES := $(IRRLICHT_PROJECT_PATH)\\..\\..\\lib\\Android\\libIrrlicht.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloWorldMobile
LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ -pipe -fno-exceptions -fno-rtti -fstrict-aliasing
ifndef NDEBUG
LOCAL_CFLAGS += -g -D_DEBUG
else
LOCAL_CFLAGS += -fexpensive-optimizations -O3
endif
ifeq ($(TARGET_ARCH_ABI),x86)
LOCAL_CFLAGS += -fno-stack-protector
endif
LOCAL_C_INCLUDES := ..\\..\\include
LOCAL_SRC_FILES := main.cpp android_tools.cpp
LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid
LOCAL_STATIC_LIBRARIES := Irrlicht android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
# copy Irrlicht data to assets
$(shell mkdir $(IRRLICHT_PROJECT_PATH)\\assets)
$(shell mkdir $(IRRLICHT_PROJECT_PATH)\\assets\\media)
$(shell mkdir $(IRRLICHT_PROJECT_PATH)\\src)
$(shell cp -R $(IRRLICHT_PROJECT_PATH)\\..\\..\\media\\Shaders\\ $(IRRLICHT_PROJECT_PATH)\\assets\\media\\)
$(shell cp $(IRRLICHT_PROJECT_PATH)\\..\\..\\media\\irrlichtlogo3.png $(IRRLICHT_PROJECT_PATH)\\assets\\media\\)
$(shell cp $(IRRLICHT_PROJECT_PATH)\\..\\..\\media\\dwarf.x $(IRRLICHT_PROJECT_PATH)\\assets\\media\\)
$(shell cp $(IRRLICHT_PROJECT_PATH)\\..\\..\\media\\dwarf.jpg $(IRRLICHT_PROJECT_PATH)\\assets\\media\\)
$(shell cp $(IRRLICHT_PROJECT_PATH)\\..\\..\\media\\axe.jpg $(IRRLICHT_PROJECT_PATH)\\assets\\media\\)
$(shell cp $(IRRLICHT_PROJECT_PATH)\\..\\..\\media\\fonthaettenschweiler.bmp $(IRRLICHT_PROJECT_PATH)\\assets\\media\\)
$(shell cp $(IRRLICHT_PROJECT_PATH)\\..\\..\\media\\bigfont.png $(IRRLICHT_PROJECT_PATH)\\assets\\media\\)
- Bạn chép đè nội dung này vào tệp tin Android.mk (trong thư mục jni trong ví dụ 27
- Vậy là Build : NDK-BUILD xong, ANT xong, ADB xong.
- Kết quả đây !
- Chúc các bạn thành công !