编译 cocos2d-x-3.13.1 程序:Android Studio (代码配置方法)
来源:互联网 发布:美国eia数据公布 编辑:程序博客网 时间:2024/05/16 10:14
1.从官网cocos下载最新版cocos2d-x-3.13.1,运行setup.py,配置cocos2dx运行环境变量。
2. 命令行新建工程: cocos new Test -l cpp -p cn.test
3. 用Android Studio打开Test目录中proj.android-studio工程,若出现提示更新按update。之后Open Module Settings
4. 编译程序运行,程序出现闪停。
5.编译NDK-JNI c++ so库文件。添加 Android NDK,配置build.gradle代码。
6 .proj.android-studio\app\build.gradle 最后添加代码:
import org.apache.tools.ant.taskdefs.condition.Os//clean.dependsOn cleanNative//call regular ndk-build(.cmd) script from app directorytask ndkBuild(type: Exec, dependsOn: 'copyResources') { workingDir file('jni') commandLine getNdkBuildCmd()}tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility = JavaVersion.VERSION_1_7}task cleanNative(type: Exec) { workingDir file('jni') commandLine getNdkBuildCmd(), 'clean'}task mydir { doLast { delete 'assets' mkdir('assets') }}task copyResources(dependsOn: 'mydir', type: Copy) { from '../../Resources' into 'assets'}def getNdkDir() { if (System.env.ANDROID_NDK_ROOT != null) return System.env.ANDROID_NDK_ROOT Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) def ndkdir = properties.getProperty('ndk.dir', null) if (ndkdir == null) throw new GradleException("NDK location not found. Define location with ndk.dir in the local.properties file or with an ANDROID_NDK_ROOT environment variable.") println(ndkdir) return ndkdir}def getNdkBuildCmd() { def ndkbuild = getNdkDir() + "/ndk-build" if (Os.isFamily(Os.FAMILY_WINDOWS)) ndkbuild += ".cmd" println(ndkbuild) return ndkbuild}
7. build.gradle全部代码
apply plugin: 'com.android.application'android { compileSdkVersion 20 buildToolsVersion "22.0.1" defaultConfig { applicationId "cn.test" minSdkVersion 10 targetSdkVersion 22 versionCode 1 versionName "1.0" } sourceSets.main { java.srcDir "src" res.srcDir "res" jniLibs.srcDir "libs" manifest.srcFile "AndroidManifest.xml" assets.srcDir "assets" } signingConfigs { release { if (project.hasProperty("RELEASE_STORE_FILE")) { storeFile file(RELEASE_STORE_FILE) storePassword RELEASE_STORE_PASSWORD keyAlias RELEASE_KEY_ALIAS keyPassword RELEASE_KEY_PASSWORD } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' if (project.hasProperty("RELEASE_STORE_FILE")) { signingConfig signingConfigs.release } } } //sourceSets.main.jni.srcDirs = [] //disable automatic ndk-build call, which ignore our Android.mk}dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile project(':libcocos2dx')}task cleanAssets(type: Delete) { delete 'assets'}task copyAssets(type: Copy) { from '../../Resources' into 'assets'}clean.dependsOn cleanAssetspreBuild.dependsOn copyAssetsimport org.apache.tools.ant.taskdefs.condition.Os//clean.dependsOn cleanNative//call regular ndk-build(.cmd) script from app directorytask ndkBuild(type: Exec, dependsOn: 'copyResources') { workingDir file('jni') commandLine getNdkBuildCmd()}tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility = JavaVersion.VERSION_1_7}task cleanNative(type: Exec) { workingDir file('jni') commandLine getNdkBuildCmd(), 'clean'}task mydir { doLast { delete 'assets' mkdir('assets') }}task copyResources(dependsOn: 'mydir', type: Copy) { from '../../Resources' into 'assets'}def getNdkDir() { if (System.env.ANDROID_NDK_ROOT != null) return System.env.ANDROID_NDK_ROOT Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) def ndkdir = properties.getProperty('ndk.dir', null) if (ndkdir == null) throw new GradleException("NDK location not found. Define location with ndk.dir in the local.properties file or with an ANDROID_NDK_ROOT environment variable.") println(ndkdir) return ndkdir}def getNdkBuildCmd() { def ndkbuild = getNdkDir() + "/ndk-build" if (Os.isFamily(Os.FAMILY_WINDOWS)) ndkbuild += ".cmd" println(ndkbuild) return ndkbuild}
8. 编译程序成功运行
0 0
- 编译 cocos2d-x-3.13.1 程序:Android Studio (代码配置方法)
- 编译 cocos2d-x-3.13.1 程序:Android Studio (添加外部工具方法)
- Cocos2d-x 3.11.1 Mac 编译Android Studio
- android studio 2.3.3编译cocos2d-x 3.15.1
- cocos2d-x 编译Android-Studio项目
- 编译 cocos2d-x-3.13.1 程序:eclipse (c++)
- 编译 cocos2d-x-3.13.1 程序:eclipse (lua)
- Cocos2d-x 3.x 编译Android方法
- Android Studio 下安装配置 Cocos2d-x
- cocos2d-x 配置android编译环境
- 编译 cocos2d-x 程序:eclipse (lua)
- android studio开发<十> 编译cocos2D-x项目
- android cocos2d-x 编译
- MacOSX Cocos2d-x 配置Android Studio以及Xcode开发环境
- OS X环境下如何搭建编译Cocos2D-X v3.x的Android Studio工程
- cocos2d-x编译android常见错误1
- Cocos2d-x--编译第一个Android程序HelloCocos2dx
- Cocos2d-x 3.2编译生成Android程序出错的解决方案
- Oracle常用操作及权限
- UOJ 2 [NOI2014]起床困难综合症
- 内存溢出
- 用 while 循环,计算1~200之间所有 3 的倍数之和
- strcpy 拷贝问题
- 编译 cocos2d-x-3.13.1 程序:Android Studio (代码配置方法)
- oracle存储过程基本语法
- 编写程序,输出 200~500之间的所有素数
- iOS开发------iOS 10 由于权限问题导致崩溃的那些坑
- Android WebView属性使用详解
- GitHub
- Linux(Ubuntu)下安装使用git
- 编写程序解决“百钱买百鸡”问题
- JNI (三)