Trang

15/10/15

Chạy Irrlicht trên Android !
Lâu lắm rồi mới bắt tay làm lại
Hiệ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 ! 

Bài đăng phổ biến