起因
demo地址: https://download.csdn.net/download/fepengwang/11963438
原本cocos游戏的android工程编译时,需要将cocos的库文件进行编译,这些文件大部分是cpp文件,使用ndk-build工具编译cpp文件非常慢,而且非常耗cpu,大概需要30-40分钟才能编译完成。
这里介绍的是CocosCreator.exe编译后的js文件快速转化到 android项目中。
CocosCreator.exe编译为android studio项目流程
- 先在CocosCreator创建项目,项目-项目发布-构建 后产生不同平台的项目。(如目录:NewProject\build\jsb-link\frameworks\runtime-src 下)
2. android studio 打开 proj.android-studio项目目录,进行编译成功(这里不考虑失败的情况,根据个人情况解决问题),时间很长。 而且坑爹的是每次CocosCreator 项目改动,构建后,用studio打开,都要重新编译一遍。效率太低。
保留so文件的方式加快编译速度
1.把第一次打开编译的各平台so文件保存。
2.新建一个新项目。
3.把第一打开编译的文件先复制到新项目中。
assets 放 游戏资源:
jsb-adapter,
res
src
main.js
project.json
这五个文件是不同游戏的不同js文件,有游戏的js脚本,res有游戏图片资源,main.js应该是游戏的主入口,负责加载资源及脚本。
libs 放 so文件和jar包:
so文件是第一次运行保留的。
jar包是:cocos2d-x\cocos\platform\android\java\libs
src 放代码文件:
注意:是把第一次打开的src/main 文件下的所有文件copy到src目录下,不要修改目录结构。
res资源
有些strings资源根据提示修改。
修改build.gradle文件
如:
apply plugin: 'com.android.application'
android {
compileSdkVersion PROP_COMPILE_SDK_VERSION.toInteger()
buildToolsVersion PROP_BUILD_TOOLS_VERSION
defaultConfig {
applicationId "org.cocos2d.helloworld"
minSdkVersion PROP_MIN_SDK_VERSION
targetSdkVersion PROP_TARGET_SDK_VERSION
versionCode 1
versionName "1.0"
}
sourceSets.main {
java.srcDir "src"
res.srcDir "res"
assets.srcDir "assets"
jniLibs.srcDir "libs"
manifest.srcFile "AndroidManifest.xml"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
externalNativeBuild {
ndkBuild {
arguments 'NDK_DEBUG=0'
}
}
}
debug {
externalNativeBuild {
ndkBuild {
arguments 'NDK_DEBUG=1'
}
}
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
最后
先运行,根据报错修改。
运行成功后,可以根据自己的需求,添加跳转逻辑,或者包名信息。也可以打成jar、aar包到自己的项目中。
demo地址: https://download.csdn.net/download/fepengwang/11963438