如何在原生Android应用中嵌入cocos2d-x(v4.0)开发的游戏
最近接到的一个需求是在我们已有的Android应用中嵌入cocos2d-x开发的小游戏,但是由于网络上关于v4.0版本相关的文章比较少,尤其是实现这种特定的需求更是几乎没有,所以笔者将自己的方法分享出来,以方便他人。
最近接到的一个需求是在我们已有的Android应用中嵌入cocos2d-x开发的小游戏,但是由于网络上关于v4.0版本相关的文章比较少,尤其是实现这种特定的需求更是几乎没有,所以笔者将自己的方法分享出来,以方便他人。
安装cocos
解压缩后进入根目录,先激活python2.7环境,笔者使用的是conda
activate py27
然后
python setup.py
重启CMD生效。
新建游戏
注意要激活python2环境
cocos new EEGameTest -p com.epic.EEGameTest -l cpp -d EEGameTest
下载安装最新版本的cmake 下载
然后在项目根目录 建立一个build-win32
目录,构建成vs项目。进入该目录执行
cmake .. -G"Visual Studio 16 2019" -Tv142 -A win32 ..
开发环境
使用VS 打开项目解决方案即可
这里注意: 需要右键将项目设置为启动项目,不然会报错。
编译
cocos compile -p android -android -m debug
如果提示缺少环境变量 可以使用v4.0目录的 setup.py 更新
整合到Android Studio
添加module
在AS中选择 Import Module,选择cocos2d-x-4.0\cocos\platform\android\java
文件夹并添加
引入之后 还需将libcocos2dx添加为项目依赖
复制 so 文件
编译成功后,将proj.android\app\build\intermediates\cmake\debug\obj
中的所有文件移动到目标的AS工程的libs文件夹中
复制assets目录
将proj.android\app\build\intermediates\assets\debug
目录中的内容复制到AS的assets目录中。
通过System.loadLibrary()方法加载so文件
在MainActivity中 添加
init {
System.loadLibrary("MyGame");
}
我这里使用Kotlin开发,如果是使用Java开发的话,要使用static。
static {
System.loadLibrary("MyGame");
}
修改AndroidManifest.xml
添加库和新增的CocosActivity
<meta-data android:name="android.app.lib_name"
android:value="MyGame" />
<activity android:name=".activity.CocosActivity"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
添加CocosActivity
public class CocosActivity extends Cocos2dxActivity {
}
注意
- 引入libcocos2dx后build可能报错, 这是因为 libcocos2dx的api版本太旧,修改为
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
minSdkVersion 9
targetSdkVersion 29
}
-
如果是通过跳转到CocosActivity,需要修改以下代码
将root检查注释掉,不然运行会报错
![Logo](https://devpress.csdnimg.cn/0eaa3f4efff14b1ab0a46fbad1f275ab.jpg)
这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!
更多推荐
所有评论(0)