编译 cocos2d-x-3.13.1 程序:Android Studio (代码配置方法)
2016-10-05 13:14
483 查看
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 最后添加代码:
7. build.gradle全部代码
8. 编译程序成功运行
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 directory task 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 cleanAssets
preBuild.dependsOn copyAssets
import org.apache.tools.ant.taskdefs.condition.Os //clean.dependsOn cleanNative //call regular ndk-build(.cmd) script from app directory task 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. 编译程序成功运行
相关文章推荐
- 编译 cocos2d-x-3.13.1 程序:Android Studio (添加外部工具方法)
- android studio cmake 编译 ndk 代码 项目配置
- Cocos2d-x 3.2编译生成Android程序出错Error running command, return code: 2的解决方法
- 在EeePC上运行Android!(转)(也是代码下载配置编译的流程!)
- android关机程序代码以及在源码中编译自己的程序
- ubuntu 12.04(gcc降级)编译android代码遇到"_FORTIFY_SOURCE"的解决方法
- Android程序反编译、重新编译和签名的方法
- google Android编译本地C++程序方法
- android的HAL第二种调用hal方法中的APP 测试程序(属于APP层)代码的实现:
- 【iOS-cocos2d-X 游戏开发之七】整合Cocos2dX的Android项目到Xcode项目中,Xcode编写&编译代码,Android导入打包运行即可!
- Android程序反编译的方法
- Android程序反编译的方法
- VC编译程序,运行时提示“由于应用程序的配置不正确,……”解决方法
- Android程序反编译的方法
- 命令行编译android程序,欢迎探讨命令行如何使用proguard混淆优化代码
- VC编译程序,运行时提示运行错误“由于应用程序的配置不正确,……”解决方法
- Android中使用Makefile编译程序和库的方法
- 自定义程序 第三方apk 编译进Android方法
- google Android编译本地C++程序方法
- 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2.0.1版本跨平台整合NDK+Xcode,Xcode编写&编译代码,Android导入打包运行即可!