移动和游戏SDK接入说明
1、拷贝proj.android目录,并重命名为proj.ophone
这样做可避免与其他Android版本的代码冲突。
2、将SDK/res目录下的文件全部拷贝到proj.ophone/res目录下
res/values/g_strings.xml文件中g_class_name节点的值时用来指定游戏原来的Ativity类,如我在此处设置org.cocos2dx.cpp.AppActivity
3、将SDK/runtime目录直接拷贝到proj.ophone目录下
在使用runtime目录下的jar文件时,要将jar文件导入到项目中,参考:http://blog.csdn.net/justinavril/article/details/2783182
4、将SDK/AndroidManifest.xml.activity.txt中的文本拷贝到游戏的AndroidManifest.xml中原来的Activity节点之后,记住要保留游戏原来的Activity节点,如果不保留,则和游戏SDK在跳转到游戏的Activity时会找不到对应的类。
5、将SDK/AndroidManifest.xml.permission.txt中的文本拷贝到游戏的AndroidManifest.xml中
6、在src/com/org/test目录下(PS:该目录路径跟package指定路径应用时一致的)添加自定义全局Application类 CmgameApplication.java,内容如下:
package com.org.test // <-- 该类的package路径应用必须与AndroidManifest.xml中manifest节点的package属性的值一致
public class CmgameApplication extends Application {
public void onCreate(){
try{
System.loadLibrary("megjb");
} catch ( Exception e ) { ... }
}
}
7、在AndroidManifest.xml中的修改配置
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.org.test" android:versionCode="2" android:versionName="1.2" >
<Application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".CmgameApplication">
8、由于Eclipse编译cocos2d-x项目时会将libs目录和assets目录的内容都会被删掉,导致APP运行时无法找到libmegjb.so。打包的步骤请参考《在MAC系统下用Eclipse打包cocos2d-x 3.3的项目》,所以文章到这一步都没有将SDK/libs目录和SDK/asssets目录下的文件拷贝到proj.ophone中。
首先编译项目,编译成功后,将SDK/libs和SDK/assets目录下的文件拷贝到proj.ophone目录下,右键点击项目Properties打开项目属性,选择Builders将CDT Builder的勾选取消,再次编译运行程序就行。
PS:此处还有一个方法可以将第三方的库添加到APK中
在Android.mk文件中增加第三方库的引用:
1).在将SDK/libs/的armeabi目录拷贝到jni目录下,
2).修改在jni目录下的android.mk文件,添加第三方库的引用,在文件LOCAL_PATH := $(call my-dir)之后增加
include $(CLEAR_VARS)
LOCAL_MODULE := megjb
LOCAL_SRC_FILES := armeabi/libmegjb.so
include $(PREBUILT_SHARED_LIBRARY)